Wie kann ich Verzeichnisse oder Dateien ausblenden, ohne deren Namen zu ändern?

51

Die OCD in mir möchte, dass Verzeichnisse, deren Namen ich nicht mag, ausgeblendet werden, da ich nicht direkt mit ihnen interagiere.

Wie kann ich Verzeichnisse ausblenden, ohne die Punktnotation zu verwenden?

myusuf3
quelle

Antworten:

79

Angenommen, Sie möchten nur die Dateien vor dem Auftauchen in Nautilus verbergen, dann gibt es einen Fehler in GNOME Bugzilla. Derzeit ist dieser Fehler jedoch noch nicht behoben.

Es gibt eine andere Möglichkeit, Dateien vor dem Erscheinen in Nautilus zu verbergen. Wenn Sie eine Datei erstellen, die .hiddenin einem Verzeichnis aufgerufen wird, werden die in der Datei aufgeführten Dateinamen nicht angezeigt.

Im Folgenden finden Sie beispielsweise eine ausgeblendete Datei, die ich erstellt habe. Diese Datei versteckt alle Dateien oder Ordner, die im selben Verzeichnis wie die versteckte Datei benannt boder egespeichert sind.

Beispiel .hidden File

Unten ist ein Screenshot des Ordners, der die versteckte Datei enthält. Beachten Sie, dass Sie nur drei Dateien sehen: a, c, und f. Die versteckte Datei wird aufgrund des "." Nicht angezeigt. am Anfang seines Namens. Beispielordner

Der Screenshot unten befindet sich im selben Ordner wie zuvor. Diesmal drücke ich jedoch Ctrl+ H, um Nautilus zu veranlassen, versteckte Dateien und Ordner anzuzeigen. Beachten Sie, dass mehrere zusätzliche Dateien angezeigt werden. Sie sehen nun mehrere Dateien, die zuvor aufgrund von Namen, die mit einem '.' Begannen, ausgeblendet wurden. Es gibt jetzt auch Dateien mit den Namen 'b' und 'e', ​​die zwar keine Namen haben, die mit '.' Beginnen, jedoch aufgrund der Auflistung in der versteckten Datei ausgeblendet wurden.

Beispielordner mit ausgeblendeten Dateien sichtbar

Dateien, die in der versteckten Datei erwähnt werden, werden nur in Nautilus versteckt. Tools wie lswerden sie weiterhin anzeigen. Die versteckte Datei ist auch nicht rekursiv. Es betrifft nur Dateien in demselben Verzeichnis, in dem sich die versteckte Datei befindet.

Einige Leute im Forum haben Skripte für Nautilus erstellt, die das Hinzufügen von Dateien zur .hidden-Datei erleichtern. Das erste Skript enthält eine nette Erklärung zur Installation und Verwendung der Skripte, das zweite Skript ist jedoch etwas übersichtlicher und kürzer. Fühlen Sie sich frei, eines der beiden Skripte zu verwenden, um Ihr Leben ein bisschen einfacher zu machen.

nhandler
quelle
+1. Nur eine Anmerkung, wenn Sie denken, Sie müssen einen 'Datei- oder Ordnernamen hinzufügen, der `` Leerzeichen enthält, ist dies nicht der Fall. Fügen Sie einfach den Datei- oder Ordnernamen hinzu
Anwar
13

Unix und Linux unterstützen nur das Ausblenden von Ordnern mit einem ..

Wenn Sie sie wirklich aus dem Weg räumen möchten, aber nicht möchten, dass sie .s haben, legen Sie sie alle in einem .hiddenVerzeichnis ab, in dem sich die Datei oder der Ordner befindet, die Sie ausblenden möchten. .hiddenwird vom Dateimanager nicht angezeigt, und Ihre Dateien werden nicht umbenannt.

lfaraone
quelle
1
Ich würde sie gerne am selben Ort aufbewahren :)
myusuf3
1
Diese Lösung wird sie an ihrem gleichen Ort halten. .hidden muss sich nicht einmal in Ihrem Home-Ordner befinden, wenn Sie dies nicht möchten. Ich verwende es normalerweise auf Wechseldatenträgern mit Konfigurationsdateien, die ich nicht sehen möchte.
Jumpnett
1
@jumpnett ist korrekt. Platzieren Sie .hidden am selben Speicherort wie die Dateien, die Sie ausblenden möchten, und fügen Sie die Datei- / Verzeichnisnamen in die .hidden-Datei ein, und zwar eine pro Zeile. Funktioniert super!
31.08.10
3

Über die Befehlszeile können Sie in Ihrer .bash_aliasesDatei Folgendes versuchen :

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

Dies fügt einen neuen Befehl hinzu lsh, der sich so verhält ls, aber die in einem .hiddenVerzeichnis aufgelisteten Dateien verbirgt . (Es fehlen auch einige seiner Funktionen wie kolorierte Ausgabe und Spaltenauflistungen.)

qnoch
quelle
2

Wenn Sie Dateien ausblenden möchten, müssen Sie sie nur mit einem vorangestellten .Namen umbenennen , wie dies bei der * NIX-Konvention der Fall ist. Entschuldigung, aber das war's.

Wenn Sie jedoch den Inhalt der Dateien / Verzeichnisse ausblenden möchten , können Sie dies mit Dateiberechtigungen tun.

Angenommen, Sie haben eine Reihe von Dateien in einem Ordner namens secret_stash. Sie können diese so ändern, dass nur Sie (der Eigentümer) über r-x(Lesen, Ausführen) verfügen und alle anderen über nichts ---(keinen Zugriff) verfügen . Da dies r-xdie Mindestdauer ist, die zum Anzeigen eines Verzeichnisses erforderlich ist (um auf dessen Inhalt zuzugreifen und ihn auszuführen, um ihn sehen zu können), ist alles in diesem Ordner für alle Benutzer praktisch verborgen, außer root.

HINWEIS : Ich führe diese Demo als aus rootund versuche, auf den Ordner als zuzugreifenmyuser

Dazu führen Sie aus chmod 700 dirname(700 bedeutet rwx------):

% mkdir secret_stash
% chmod 700 secret_stash

Und hier ist es:

% 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

Wenn ich jetzt versuche, darauf zuzugreifen myuser, schlagen Versuche, auf den Ordner oder dessen Inhalt zuzugreifen, fehl:

% 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

Und jetzt habe ich das Wort "Geheimnis" so oft gesagt, dass es keine Bedeutung mehr hat !!

Jathanismus
quelle
2
Du kannst es wirklich verstecken, chmod -R 000 secret_stashdann kann es niemand lesen!
Marco Ceppi
@Marco Ceppi - ULTIMATIVE SICHERHEIT!
jathanism
Natürlich ist dies mehr "Sicherheit" als "Dunkelheit" - das ist es, wonach die OP gesucht hat;)
Marco Ceppi
2
@MarcoCeppi: chmod 000 verbirgt die Datei sogar vor dem Eigentümer der Datei, mit Ausnahme des Stamms, der immer 000 umgehen kann. Der Eigentümer der Datei kann jedoch die Berechtigung der Datei zum Lesen ändern, sodass Sie dies tun müssen Ändern Sie außerdem den Besitz der Datei in "root", damit die Berechtigung "000" wirklich aussagekräftig wird.
Lie Ryan
2

1. off: wenn sie eine datei vor irgendjemandem verstecken wollen: installieren sie ein linux intrusion detection system . ( Snort ist ein Beispiel) Sie können eine Datei sogar vor "root" verstecken, aber "root" kann diese Einstellung auch zurücksetzen.


Es ist jedoch möglicherweise einfacher, die Berechtigungen des Verzeichnisses, in dem sich die Datei befindet, auf "root" zu setzen. Beispiel:

 $ 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

Und die Datei 1ist praktisch nicht sichtbar.

Verzeichnis wird sichtbar sein; Datei wird nicht sichtbar sein. Beachten Sie jedoch: "root" hat IMMER Zugriff auf alle Dateien.


Zusammen mit dem können chattrSie sogar die Datei unveränderlich machen.

sudo su    
chattr + i {file}

und selbst "root" kann die datei nicht verändern - es sei denn das chattrwird zurückgesetzt (und ja "root" kann das).

Irgendeine Tastenkombination dafür?

Nein, das müssen Sie manuell tun.

Rinzwind
quelle
0

Es gibt auch eine Erweiterung für Nautilus namens nautilus-hide , mit der Sie Dateien oder Ordner durch einfaches Klicken mit der rechten Maustaste ausblenden können.

So installieren Sie diese Erweiterung: sudo apt-get install nautilus-hidein einem Terminal oder suchen Sie im Ubuntu Software Center nach "nautilus hide".

Vergessen Sie nicht, Nautilus nach der Installation zu beenden: Alt+ F2und tippen Sie nautilus -q.

SNugues
quelle