
Mein Ziel ist es, bestimmte Dateien aus bestimmten Unterverzeichnissen abzugleichen. Ich habe die folgende Ordnerstruktur
`-- Daten |-- ein |-- eine.txt |-- b |-- b.txt |-- c |-- c.txt |-- d |-- d.txt |-- e |-- e.txt |-- org-1 | |-- a.org | |-- b.org | |-- org.txt | |-- Benutzer-0 | | |-- eine.txt | | |-- b.txt
Ich versuche, die Dateien nur im Datenverzeichnis aufzulisten. Mit dem folgenden Befehl in RHEL erhalte ich das richtige Ergebnis
finde ./testdir/ -iwholename "*/data/[!/].txt" eine.txt b.txt c.txt d.txt e.txt
Wenn ich denselben Befehl in Ubuntu ausführe, funktioniert es nicht.
Kann mir bitte jemand sagen, warum es unter Ubuntu nicht funktioniert?
Bearbeiten:
Nach einigen Tests wurde mir klar, dass es gemäß meinem Beitrag sowohl in RHEL als auch in Ubuntu einwandfrei funktioniert. Das Problem liegt woanders. Die Dateien, die ich in meinem Ubuntu-System habe, sind Datendateien.
Es ist sehr merkwürdig, dass diese Dateitypen weder in RHEL noch in Ubuntu aufgeführt werden.
[supratik@testserver ~]$ ls testprog/data/ a.txt Daten.dat [supratik@testserver ~]$ Datei testprog/data/a.txt testprog/data/a.txt: ASCII-Text [supratik@testserver ~]$ Datei testprog/data/data.dat testprog/data/data.dat: Daten [supratik@testserver ~]$ find ./testprog/ -iwholename "*/data/[!/].txt" ./testprog/data/a.txt [supratik@testserver ~]$ find ./testprog/ -iwholename "*/data/[!/].dat"
Antwort1
Ich habe dies gerade auf CentOS 5.6,6.0 und Ubuntu 9.04,10.04 und 11.04 überprüft und ich bekomme bei allen die gleiche Antwort, nämlich
find ./testdir/ -iwholename "*/data/[!/].txt"
./testdir/data/c.txt
./testdir/data/d.txt
./testdir/data/a.txt
./testdir/data/e.txt
./testdir/data/b.txt
Ähnliche Ergebnisse erhalten Sie mit
Find ./testdir/data/ -maxdepth 1 -name '*.txt'