Wiki source for LinuxFileManagement
=====Linux-Dateiverwaltung=====
==a==Dateien suchen==a==
Sucht im etc Verzeichnis die Datei fastab
%%(bash)
find /etc -name fstab
find /etc -name "*samba*"
%%
Fehlermeldungen nicht anzeigen
%%(bash)
find /etc -name fstab 2> /dev/null
%%
==a==In Dateien suchen==a==
Datei mit grep nach einem Wort durchsuchen
%%(bash)
grep STRING DATEI
%%
In allen Dateien aus dem Verzeichnis /home (inkl. Unterverzeichnisse) nach dem Wort KEYWORD suchen
%%(bash)
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
%%(bash)
find /home -type f -name *.txt | xargs grep KEYWORD
%%
Dateien durchsuchen und Fehler unterdrücken
%%(bash)
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
%%(bash)
# 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
%%
Alternativ mit locate
%%(bash)
locate *.xxx
locate fstab
%%
==a==Kopieren==a==
Kopieren rekursiv
%%(bash)
cp -r /src /dest
%%
Kopieren mit Übernahme der Zugangsrechte
%%(bash)
cp -p /src /dest
%%
Kopieren mit Übernahme der Zugangsrechte; Links als Links beibehalten und mit Unterverzeichnissen
%%(bash)
cp -rpd /src /dest
%%
Secure copy
%%(bash)
scp *.* user1@192.168.0.1:~/ordner
%%
==a==Speicherbelegung==a==
Größe eines Verzeichnisses
%%(bash)
du -sh /boot
%%
Größe von Verzeichnissen in Megabyte
%%(bash)
du -cm
%%
Größe von Verzeichnissen der ersten Ebene
%%(bash)
du --max-depth=1 -h
%%
Die fünf größten Ordner im aktuellen Verzeichnis ausgeben
%%(bash)
du --max-depth=1 | sort -rn | head -5
%%
Die fünf größten Ordner bzw. Dateien im aktuellen Verzeichnis ausgeben
%%(bash)
du --max-depth=1 -a | sort -rn | head -5
%%
==a==Zugriffsrechte==a==
%%(bash)
# Rechte für Datei ändern
chmod 2770 file
# Rekursiv alle Unterordner bearbeiten
chown user1 ./folder/ -R
chgrp user1 ./folder/ -R
chmod 2770 ./folder/ -R
%%
==a==Auflisten==a==
Älteste Datei
%%(bash)
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
==a==Standardrechte für neue Dateien==a==
%%(bash)
>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
%%
==a==Links==a==
Symbolic link to target packet.zip
%%(bash)
ln -s /carsten/paket.zip
%%
==a==Vergleich==a==
Dateien Vergleichen
%%(bash)
diff Datei1.dat Datei2.dat
%%
Verzeichnisse Vergleichen
%%(bash)
diff /tmp/dir1 /tmp/dir2
%%
Siehe auch [[LinuxDiff Vergleich von Streams]]
==a==Verzeichnisgröße==a==
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%%
==a==Dateien und Verzeichnisse umbenennen==a==
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.
%%(bash)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 [[http://www.it-heini.de/2012/06/30/immer-diese-umlaute-ein-shell-befehl-bringt-abhilfe/ it-heini.de]] und abgeändert. Vor jedem Umlaut musste bei ein Backslash "\" stehen.
----
Siehe auch {{backlinks}}
==a==Dateien suchen==a==
Sucht im etc Verzeichnis die Datei fastab
%%(bash)
find /etc -name fstab
find /etc -name "*samba*"
%%
Fehlermeldungen nicht anzeigen
%%(bash)
find /etc -name fstab 2> /dev/null
%%
==a==In Dateien suchen==a==
Datei mit grep nach einem Wort durchsuchen
%%(bash)
grep STRING DATEI
%%
In allen Dateien aus dem Verzeichnis /home (inkl. Unterverzeichnisse) nach dem Wort KEYWORD suchen
%%(bash)
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
%%(bash)
find /home -type f -name *.txt | xargs grep KEYWORD
%%
Dateien durchsuchen und Fehler unterdrücken
%%(bash)
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
%%(bash)
# 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
%%
Alternativ mit locate
%%(bash)
locate *.xxx
locate fstab
%%
==a==Kopieren==a==
Kopieren rekursiv
%%(bash)
cp -r /src /dest
%%
Kopieren mit Übernahme der Zugangsrechte
%%(bash)
cp -p /src /dest
%%
Kopieren mit Übernahme der Zugangsrechte; Links als Links beibehalten und mit Unterverzeichnissen
%%(bash)
cp -rpd /src /dest
%%
Secure copy
%%(bash)
scp *.* user1@192.168.0.1:~/ordner
%%
==a==Speicherbelegung==a==
Größe eines Verzeichnisses
%%(bash)
du -sh /boot
%%
Größe von Verzeichnissen in Megabyte
%%(bash)
du -cm
%%
Größe von Verzeichnissen der ersten Ebene
%%(bash)
du --max-depth=1 -h
%%
Die fünf größten Ordner im aktuellen Verzeichnis ausgeben
%%(bash)
du --max-depth=1 | sort -rn | head -5
%%
Die fünf größten Ordner bzw. Dateien im aktuellen Verzeichnis ausgeben
%%(bash)
du --max-depth=1 -a | sort -rn | head -5
%%
==a==Zugriffsrechte==a==
%%(bash)
# Rechte für Datei ändern
chmod 2770 file
# Rekursiv alle Unterordner bearbeiten
chown user1 ./folder/ -R
chgrp user1 ./folder/ -R
chmod 2770 ./folder/ -R
%%
==a==Auflisten==a==
Älteste Datei
%%(bash)
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
==a==Standardrechte für neue Dateien==a==
%%(bash)
>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
%%
==a==Links==a==
Symbolic link to target packet.zip
%%(bash)
ln -s /carsten/paket.zip
%%
==a==Vergleich==a==
Dateien Vergleichen
%%(bash)
diff Datei1.dat Datei2.dat
%%
Verzeichnisse Vergleichen
%%(bash)
diff /tmp/dir1 /tmp/dir2
%%
Siehe auch [[LinuxDiff Vergleich von Streams]]
==a==Verzeichnisgröße==a==
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%%
==a==Dateien und Verzeichnisse umbenennen==a==
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.
%%(bash)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 [[http://www.it-heini.de/2012/06/30/immer-diese-umlaute-ein-shell-befehl-bringt-abhilfe/ it-heini.de]] und abgeändert. Vor jedem Umlaut musste bei ein Backslash "\" stehen.
----
Siehe auch {{backlinks}}