it-swarm.it

Come posso nascondere directory o file senza cambiarne il nome?

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?

50
myusuf3

Supponendo che ti interessi solo a nascondere i file dalla visualizzazione in nautilus, c'è un bug sul Bugzilla di GNOME su questo. 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 .hidden all'interno di una directory, qualsiasi nome di file elencato nel file non verrà visualizzato.

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

Example .hidden File

Di seguito è riportato uno screenshot della cartella che contiene il file .hidden. Si noti che vengono visualizzati solo tre file: a, c e f. Non vedi il file .hidden a causa del '.' all'inizio del suo nome. Example Folder

Lo screenshot seguente è della stessa cartella di prima. Tuttavia, questa volta, ho colpito Ctrl+H per fare in modo che nautilus visualizzi file e cartelle nascosti. Nota come ci sono molti file aggiuntivi che appaiono. 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 dell'essere elencati nel file .hidden.

Example Folders With Hidden Files Visible

I file menzionati nel file .hidden saranno nascosti solo in nautilus. Strumenti come ls li 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. primo script include una bella spiegazione su come installare e utilizzare gli script, ma secondo script è un po 'più pulito e più breve. Sentiti libero di usare uno dei due script per semplificarti un po 'la vita.

79
nhandler

Unix e Linux supporta solo le cartelle nascoste che si trovano con un ..

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

13
lfaraone

Dalla riga di comando potresti provare qualcosa del genere nel tuo file .bash_aliases:

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

Ciò aggiunge un nuovo comando lsh che si comporta come ls, ma nasconde i file elencati in una directory .hidden. (Manca anche alcune delle sue funzionalità come output colorato ed elenchi di colonne.)

3
qneill

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

Tuttavia, se si desidera nascondere 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, potresti cambiarla in modo che solo tu (il proprietario) tu abbia r-x (leggi, esegui) e tutti gli altri non abbiano nulla --- (nessun accesso). Poiché r-x è il permanente minimo necessario per visualizzare una directory (leggi per accedere ai suoi contenuti ed esegui per poterli vedere), qualsiasi cosa all'interno di quella cartella è effettivamente nascosta da tutti tranne root.

NOTE: sto eseguendo questa demo come root e sto provando ad accedere alla cartella come myuser

Per fare ciò, esegui 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
jathanism

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 chattr puoi persino rendere il file immutabile.

Sudo su    
chattr + i {file}

e persino "root" non può modificare il file -unless- il chattr viene ripristinato (e sì "root" può farlo).

Qualche scorciatoia da tastiera per questo?

No, questo è qualcosa che devi fare manualmente.

2
Rinzwind

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-hide in un terminale, oppure cercare "nautilus hide" in Ubuntu Software Center.

Non dimenticare di uscire da Nautilus dopo l'installazione: Alt+F2 e digitare nautilus -q.

0
SNugues