
Ich habe einen Ordner mit etwa 150 Textdateien. Ich möchte Ordner mit den Namen der 150 Dateien erstellen. Anschließend möchte ich, dass die Textdatei in den entsprechenden Ordner verschoben wird.
Beispielnamen der Dateien im Verzeichnis „myfolder“:
~/myfolder/
|______ ajhaslf.txt
|______ oiueed.txt
|______ dsflije.txt
So stelle ich mir meine neue Struktur vor:
~/myfolder/
|______ ajhaslf
|____ajhaslf.txt
|______ oiueed
|____oiueed.txt
|______ dsflije
|____dsflije.txt
Natürlich ist das Erstellen eines Verzeichnisses mit den Dateinamen für mich kein Problem mit mkdir
.
Antwort1
@gniourf_gniourfhat die richtige Idee:
set -o errexit -o nounset
cd ~/myfolder
for file in *.txt
do
dir="${file%.txt}"
mkdir -- "$dir"
mv -- "$file" "$dir"
done
Dies sollte POSIX-kompatibel sein. Es istnichtWiedereintritt. Es wirdnichtfunktioniert, wenn Sie zwei beliebige Dateien mit den Namen something.txt
und haben something.txt.txt
.