Linux-Dateiverwaltung
1. Dateien suchen
Sucht im etc Verzeichnis die Datei fastab
find /etc -name fstab
find /etc -name "*samba*"
find /etc -name "*samba*"
Fehlermeldungen nicht anzeigen
find /etc -name fstab 2> /dev/null
2. In Dateien suchen
Datei mit grep nach einem Wort durchsuchen
grep STRING DATEI
In allen Dateien aus dem Verzeichnis /home (inkl. Unterverzeichnisse) nach dem Wort KEYWORD suchen
find /home -type f | xargs grep KEYWORD
In allen Dateien mit dem Muster *.txt aus dem Verzeichnis /home (inkl. Unterverzeichnisse) nach dem Wort KEYWORD suchen
find /home -type f -name *.txt | xargs grep KEYWORD
Dateien durchsuchen und Fehler unterdrücken
find ./ -type f | xargs grep KEYWORD 2> /dev/null
find : Suchprogramm
/home : das Verzeichnis
-type f : durchsucht Dateien
-name : durchsucht Dateien mit einem bestimmten Namen
xargs : Zum Erstellen und Ausführen von Kommandos
grep : Sucht nach einem bestimmten Suchwort
Beispiel mit Ausgabe
# find /etc/ -type f | xargs grep eth0
/etc/udev/rules.d/z25_persistent-net.rules:SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:61:aa::cd:c5", NAME="eth0"
/etc/network/interfaces:allow-hotplug eth0
/etc/network/interfaces:iface eth0 inet dhcp
/etc/dhcp3/dhclient.conf:# interface "eth0";
/etc/dhcp3/dhclient.conf:# interface "eth0";
/etc/initramfs-tools/initramfs.conf:# Specify the network interface, like eth0
/etc/initramfs-tools/initramfs.conf:DEVICE=eth0
/etc/udev/rules.d/z25_persistent-net.rules:SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:61:aa::cd:c5", NAME="eth0"
/etc/network/interfaces:allow-hotplug eth0
/etc/network/interfaces:iface eth0 inet dhcp
/etc/dhcp3/dhclient.conf:# interface "eth0";
/etc/dhcp3/dhclient.conf:# interface "eth0";
/etc/initramfs-tools/initramfs.conf:# Specify the network interface, like eth0
/etc/initramfs-tools/initramfs.conf:DEVICE=eth0
Alternativ mit locate
locate *.xxx
locate fstab
locate fstab
3. Kopieren
Kopieren rekursiv
cp -r /src /dest
Kopieren mit Übernahme der Zugangsrechte
cp -p /src /dest
Kopieren mit Übernahme der Zugangsrechte; Links als Links beibehalten und mit Unterverzeichnissen
cp -rpd /src /dest
Secure copy
scp *.* user1@192.168.0.1:~/ordner
4. Speicherbelegung
Größe eines Verzeichnisses
du -sh /boot
Größe von Verzeichnissen in Megabyte
du -cm
Größe von Verzeichnissen der ersten Ebene
du --max-depth=1 -h
Die fünf größten Ordner im aktuellen Verzeichnis ausgeben
du --max-depth=1 | sort -rn | head -5
Die fünf größten Ordner bzw. Dateien im aktuellen Verzeichnis ausgeben
du --max-depth=1 -a | sort -rn | head -5
5. Zugriffsrechte
# Rechte für Datei ändern
chmod 2770 file
# Rekursiv alle Unterordner bearbeiten
chown user1 ./folder/ -R
chgrp user1 ./folder/ -R
chmod 2770 ./folder/ -R
chmod 2770 file
# Rekursiv alle Unterordner bearbeiten
chown user1 ./folder/ -R
chgrp user1 ./folder/ -R
chmod 2770 ./folder/ -R
6. Auflisten
Älteste Datei
ls -t1 | tac | head -n 1
ls -t: Sort by file time
ls -1: One file per line
tac: Liste umkehren
head -n 1: erster Eintrag
7. Standardrechte für neue Dateien
>umask 0022
>ps > umask_0022
>umask 0002
>ps > umask_0002
>la
-rw-rw-r-- 1 user1 user1 84 2007-02-05 23:52 umask_0002
-rw-r--r-- 1 user1 user1 84 2007-02-05 23:51 umask_0022
>ps > umask_0022
>umask 0002
>ps > umask_0002
>la
-rw-rw-r-- 1 user1 user1 84 2007-02-05 23:52 umask_0002
-rw-r--r-- 1 user1 user1 84 2007-02-05 23:51 umask_0022
8. Links
Symbolic link to target packet.zip
ln -s /carsten/paket.zip
9. Vergleich
Dateien Vergleichen
diff Datei1.dat Datei2.dat
Verzeichnisse Vergleichen
diff /tmp/dir1 /tmp/dir2
Siehe auch LinuxDiff Vergleich von Streams
10. Verzeichnisgröße
Ein sehr nützlicher Befehl, wenn es um das Auffinden von Speicherplatzfressern geht, ist "du" mit dem Parameter s für Summarize. Damit wird für jedes Verzeichnis eine Summe der darunter liegenden Dateien angegeben. Mit der Option h gibt "du" den Speicherbedarf human lesbar aus. Und mit sort -h wird die Ausgabe nach Größe sortiert.
du -sh * | sort -h
11. Dateien und Verzeichnisse umbenennen
Umlaute, die unter Linux heute noch (Jahr 2014) große Probleme machen können, ersetzen.
ownCloud, joe und grep kamen mit Umlauten in Dateien bei mir gar nicht zurecht.
find . -depth -execdir rename 's/\Ä/Ae/g;s/\Ö/Oe/g;s/\Ü/Ue/g;s/\ä/ae/g;s/\ö/oe/g;s/\ü/ue/g;s/\ß/ss/g;' "{}" \;
Gefunden auf it-heini.de und abgeändert. Vor jedem Umlaut musste bei ein Backslash "\" stehen.
Siehe auch