Comment puis-je masquer des répertoires ou des fichiers sans changer leur nom?

51

L'OCD en moi veut que les répertoires dont je n'aime pas le nom soient cachés car je n'interagis pas directement avec eux.

Comment puis-je masquer des répertoires sans utiliser la notation par points?

myusuf3
la source

Réponses:

79

En supposant que vous vous souciez uniquement de cacher les fichiers dans Nautilus, il y a un bogue sur GNOME Bugzilla à ce sujet. Cependant, actuellement, ce bogue n’a pas été résolu.

Il existe un autre moyen de masquer l’apparition de fichiers dans Nautilus. Si vous créez un fichier appelé à l' .hiddenintérieur d'un répertoire, aucun nom de fichier répertorié dans le fichier ne sera affiché.

Par exemple, ci-dessous est un fichier .hidden que j'ai créé. Ce fichier cachera tous les fichiers ou dossiers nommés bou esitués dans le même répertoire que le fichier .hidden.

Exemple de fichier .hidden

Vous trouverez ci-dessous une capture d'écran du dossier contenant le fichier .hidden. Notez que vous ne voyez que trois fichiers: a, cet f. Vous ne voyez pas le fichier .hidden à cause du "." au début de son nom. Exemple de dossier

La capture d'écran ci-dessous est du même dossier qu'avant. Cependant, cette fois, j'ai appuyé sur Ctrl+ Hpour que nautilus affiche les fichiers et dossiers cachés. Remarquez comment plusieurs fichiers supplémentaires apparaissent. Vous voyez maintenant plusieurs fichiers qui étaient auparavant cachés en raison de noms commençant par un '.'. Il existe également des fichiers appelés «b» et «e», qui, bien qu'ils n'aient pas de noms commençant par un «.», Ont été masqués car ils figurent dans le fichier .hidden.

Exemple de dossiers avec des fichiers cachés visibles

Les fichiers mentionnés dans le fichier .hidden ne seront cachés que dans Nautilus. Des outils comme lsvont toujours les afficher. Le fichier .hidden n'est pas non plus récursif. Cela n'affecte que les fichiers du même répertoire que le fichier .hidden.

Certaines personnes du forum ont créé des scripts pour Nautilus qui facilitent l’ajout de fichiers au fichier .hidden. Le premier script comprend une explication intéressante sur la façon d'installer et d'utiliser les scripts, mais le second script est un peu plus propre et plus court. N'hésitez pas à utiliser l'un ou l'autre script pour vous rendre la vie un peu plus facile.

nhandler
la source
+1 Juste une note, SI vous pensez que vous devez ajouter un nom 'de fichier ou de dossier qui contient un espace, ce n’est pas le cas. Ajoutez simplement le nom du fichier ou du dossier
Anwar
13

Unix et Linux ne prennent en charge que le masquage de dossiers appartenant à un ..

Si vous voulez vraiment les éliminer, mais que vous ne les avez pas ., placez-les tous .hiddendans le même répertoire que le fichier ou le dossier que vous voulez masquer. .hiddenne sera pas exposé par le gestionnaire de fichiers et vos fichiers ne changeront pas de nom.

lfaraone
la source
1
Je voudrais tellement les garder au même endroit :)
myusuf3
1
cette solution les gardera au même endroit. .hidden n'a même pas besoin d'être dans votre dossier personnel si vous ne le souhaitez pas. Je l'utilise généralement sur des lecteurs amovibles contenant des fichiers de configuration que je ne souhaite pas voir.
Jumpnett
1
@jumpnett est correct, placez .hidden au même emplacement que les fichiers que vous souhaitez masquer, puis ajoutez les noms de fichier / répertoire au fichier .hidden, un par ligne. Fonctionne très bien!
Inverser
3

En ligne de commande, vous pouvez essayer quelque chose comme ceci dans votre .bash_aliasesfichier:

lsh() {
    [ -s .hidden ] && echo "lsh: hiding $(wc -l .hidden) patterns" && ls $@ | grep -v -F "$(cat .hidden)";
    [ ! -f .hidden ] && ls $@
}

Cela ajoute une nouvelle commande lshqui se comporte comme ls, mais cache les fichiers listés dans un .hiddenrépertoire. (Il manque également certaines de ses fonctionnalités telles que la sortie colorisée et les listes de colonnes.)

qneill
la source
2

Si vous souhaitez masquer des fichiers, il ne vous reste plus qu'à les renommer avec une .convention précédente , comme c'est le cas de la convention * NIX. Désolé, mais c'est tout.

Toutefois, si vous souhaitez masquer le contenu des fichiers / répertoires, vous pouvez le faire avec des autorisations de fichier.

Donc, disons que vous avez un tas de fichiers dans un dossier appelé secret_stash, vous pouvez le changer pour que seul vous (le propriétaire) ayez r-x(lire, exécuter) et que tout le monde n’ait rien ---(pas d’accès). Puisque r-xc'est le minimum de permanentes nécessaires pour voir un répertoire (lu pour accéder à son contenu et exécuter pour pouvoir le voir), tout ce qui se trouve à l'intérieur de ce dossier est effectivement caché à tout le monde root.

REMARQUE : J'utilise cette démo rootet j'essaie d'accéder au dossier en tant quemyuser

Pour ce faire, vous exécutez chmod 700 dirname(700 moyens rwx------):

% mkdir secret_stash
% chmod 700 secret_stash

Et le voici:

% whoami
root
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash  
./  ../  secret.txt
% cat secret_stash/secret.txt 
TOP SECRET DATA

Maintenant et si j'essaie d'y accéder depuis myuser, les tentatives pour accéder au dossier ou à son contenu échouent:

% whoami
myuser
% ls -ld secret_stash
drwx------ 2 root root 4.0K 2010-08-12 07:59 secret_stash/
% ls secret_stash 
ls: cannot open directory secret_stash: Permission denied
% cat secret_stash/secret.txt
cat: secret_stash/secret.txt: Permission denied

Et maintenant, j'ai dit le mot "secret" tant de fois qu'il a perdu toute signification!

jathanisme
la source
2
Vous pouvez le rendre vraiment caché avec chmod -R 000 secret_stashalors personne ne sera capable de le lire!
Marco Ceppi
@Marco Ceppi - SECRET ULTIME!
jathanism
Bien sûr, cela relève plus de la "sécurité" que de "l'obscurité" - c'est ce que recherchait le PO, je crois;)
Marco Ceppi
2
@MarcoCeppi: chmod 000 cachera le fichier même au propriétaire du fichier, à l'exception de la racine, qui peut toujours contourner 000. Cependant, le propriétaire du fichier peut toujours changer la permission du fichier pour le lire, vous devez donc changez également la propriété du fichier en root pour rendre l’autorisation 000 vraiment significative.
Lie Ryan
2

1er arrêt: si vous voulez cacher un fichier à quiconque: installez un système de détection d'intrusion sous Linux . ( Snort est un exemple) Vous pouvez même cacher un fichier à partir de "root" mais "root" sera également en mesure de rétablir ces paramètres.


Mais il serait peut-être plus simple de définir les autorisations du répertoire qui contient le fichier sur "root". Exemple:

 $ sudo su
 # mkdir tmp/
 # touch tmp/1
 # chown root:root tmp
 # chmod 000 tmp  
 # ls -l
total 4
d--------- 2 root root 4096 2015-08-07 06:36 tmp  
 # exit
exit
 $ ls
tmp
 $ cd tmp/
bash: cd: tmp/: Permission denied

Et le fichier 1est effectivement caché de la vue.

Le répertoire sera visible. Le fichier ne sera pas visible. Attention, "root" aura TOUJOURS accès à tous les fichiers.


Avec le, chattrvous pouvez même rendre le fichier immuable.

sudo su    
chattr + i {file}

et même "root" ne peut pas altérer le fichier - à moins que le ne chattrsoit retourné (et oui "root" peut le faire).

Un raccourci clavier pour ça?

Non, c'est quelque chose que vous devez faire manuellement.

Rinzwind
la source
0

Il existe également une extension pour Nautilus appelée nautilus-hide qui vous permet de masquer n’importe quel fichier ou dossier avec un simple clic-droit dessus.

Pour installer cette extension: sudo apt-get install nautilus-hidedans un terminal, ou recherchez "cache de nautile" dans le Centre logiciel Ubuntu.

N'oubliez pas de quitter Nautilus après l'installation: Alt+ F2et tapez nautilus -q.

SNugues
la source