Come posso nascondere directory o file senza cambiarne il nome?


51

Il DOC in me vuole che le directory di cui non mi piace il nome vengano nascoste poiché non interagisco direttamente con esse.

Come posso nascondere le directory senza usare la notazione punto?

Risposte:


79

Supponendo che ti interessi solo a nascondere i file dalla visualizzazione in nautilus, c'è un bug su GNOME Bugzilla al riguardo. Tuttavia, attualmente, quel bug non è stato risolto.

Esiste un altro modo per nascondere la visualizzazione dei file in nautilus. Se si crea un file chiamato .hiddenall'interno di una directory, non verrà visualizzato alcun nome file elencato nel file.

Ad esempio, di seguito è riportato un file .hidden che ho creato. Questo file nasconderà tutti i file o le cartelle denominati bo esituati nella stessa directory del file .hidden.

Esempio .hidden File

Di seguito è riportato uno screenshot della cartella che contiene il file .hidden. Si noti che si vede solo tre file: a, c, e f. Non vedi il file .hidden a causa del '.' all'inizio del suo nome. Cartella di esempio

Lo screenshot seguente è della stessa cartella di prima. Tuttavia, questa volta, ho premuto Ctrl+ Hper far visualizzare a nautilus file e cartelle nascosti. Nota come ci sono molti file aggiuntivi che compaiono. Ora vedi diversi file precedentemente nascosti a causa del fatto che avevano nomi che iniziavano con un '.'. Ora ci sono anche file chiamati 'b' ed 'e', ​​che pur non avendo nomi che iniziano con un '.', Erano nascosti a causa della loro elencazione nel file .hidden.

Cartelle di esempio con file nascosti visibili

I file menzionati nel file .hidden saranno nascosti solo in nautilus. Strumenti come lsli visualizzeranno comunque. Anche il file .hidden non è ricorsivo. Interessa solo i file nella stessa directory in cui si trova il file .hidden.

Alcune persone sul forum sono andate avanti e hanno creato script per nautilus che facilitano l'aggiunta di file al file .hidden. Il primo script include una bella spiegazione su come installare e utilizzare gli script, ma il secondo script è un po 'più pulito e più breve. Sentiti libero di usare uno dei due script per rendere la tua vita un po 'più semplice.


+1. Solo una nota, SE pensi di dover aggiungere 'per il nome del file o della cartella che contiene `` spazio, non lo è. Aggiungi semplicemente il nome del file o della cartella
Anwar

13

Unix e Linux supporta solo nascondere cartelle che si trovano con a ..

Se vuoi davvero toglierli di mezzo, ma vuoi che non abbiano ., inseriscili tutti nella .hiddenstessa directory del file o della cartella che vuoi nascondere. .hiddennon verrà esposto dal file manager e i tuoi file non avranno una modifica del nome.


1
mi piacerebbe tenerli nello stesso posto :)
myusuf3

1
questa soluzione li terrà al loro posto. .hidden non deve nemmeno essere nella tua cartella home se non vuoi che sia. Di solito lo uso su unità rimovibili che hanno file di configurazione che non voglio vedere.
jumpnett,

1
@jumpnett è corretto, posizionare .hidden nella stessa posizione dei file che si desidera nascondere e aggiungere i nomi di file / directory nel file .hidden, uno per riga. Funziona alla grande!
inverti il

3

Dalla riga di comando puoi provare qualcosa del genere nel tuo .bash_aliasesfile:

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

Questo aggiunge un nuovo comando lshche si comporta come ls, ma nasconde i file elencati in una .hiddendirectory. (Manca anche alcune delle sue funzionalità come output colorato ed elenchi di colonne.)


2

Se vuoi nascondere i file, ti rimane solo rinominarli con una precedente ., come è la convenzione * NIX. Scusa, ma è tutto.

Tuttavia, se si desidera nascondere il contenuto dei file / directory, è possibile farlo con le autorizzazioni dei file.

Quindi supponi di avere un sacco di file in una cartella chiamata secret_stash, puoi cambiarla in modo che solo tu (il proprietario) tu abbia r-x(leggi, esegui) e tutti gli altri non abbiano nulla ---(nessun accesso). Dato che r-xsono i permanenti minimi necessari per visualizzare una directory (leggi per accedere ai suoi contenuti ed eseguirli per poterli vedere), qualsiasi cosa all'interno di quella cartella è effettivamente nascosta da tutti ma root.

NOTA : sto eseguendo questa demo come roote sto provando ad accedere alla cartella comemyuser

Per fare questo corri chmod 700 dirname(700 significa rwx------):

% mkdir secret_stash
% chmod 700 secret_stash

Ed eccolo qui:

% 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

Ora e se provo ad accedervi da myuser, i tentativi di accedere alla cartella o al suo contenuto falliscono:

% 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

E ora ho detto la parola "segreto" così tante volte che ha perso ogni significato !!


2
Puoi renderlo davvero nascosto, chmod -R 000 secret_stashquindi nessuno sarà in grado di leggerlo!
Marco Ceppi

@Marco Ceppi - ULTIMATE SECRECY!
jatanismo,

Ovviamente si tratta più di "Sicurezza" che di "Oscurità" - penso che l'OP stesse cercando;)
Marco Ceppi

2
@MarcoCeppi: chmod 000 nasconderà il file anche al proprietario del file, ad eccezione del root, che può sempre ignorare 000. Tuttavia, il proprietario del file può comunque modificare l'autorizzazione del file per leggerlo, quindi è necessario cambia anche la proprietà del file in root per rendere davvero significativa l'autorizzazione 000.
Lie Ryan,

2

Prima di tutto: se vuoi nascondere un file a chiunque: installa un sistema di rilevamento delle intrusioni di Linux . ( Snort è un esempio) Puoi persino nascondere un file da "root" ma "root" sarà anche in grado di ripristinare quelle impostazioni.


Ma potrebbe essere più semplice impostare le autorizzazioni della directory che contiene il file su "root". Esempio:

 $ 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

E il file 1è effettivamente nascosto alla vista.

La directory sarà visibile; il file non sarà visibile. Mente però: "root" avrà SEMPRE accesso a qualsiasi file.


Insieme a chattrte puoi persino rendere il file immutabile.

sudo su    
chattr + i {file}

e persino "root" non può alterare il file -unless- the chattrviene ripristinato (e sì "root" può farlo).

Qualche scorciatoia da tastiera per questo?

No, questo è qualcosa che devi fare manualmente.


0

C'è anche un'estensione per Nautilus chiamata nautilus-hide che ti permetterà di nascondere qualsiasi file o cartella con un semplice clic destro su di essi.

Per installare questa estensione: sudo apt-get install nautilus-hidein un terminale, o cercare "nautilus hide" in Ubuntu Software Center.

Non dimenticare di uscire da Nautilus dopo l'installazione: Alt+ F2e digita nautilus -q.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.