Ich habe zwei Verzeichnisse:
dir_1
welches hat a.mp4
, b.mp4
, c.mp4
, d.mp4
und dir_2
welches hat nur a.txt
, b.txt
. Das Skript sollte a.mp4
und b.mp4
nach verschieben dir_3
, da nur diese Dateinamen mit den Dateinamen in übereinstimmen dir_2
. Ich finde es zu schwierig, den Skripten zu folgen, wenn ich diese Art von bestimmten Operationen durchführen muss.
Antwort1
Versuchen,
for f in "dir_2"/*; do
filename=${f##*/}
mv -t "dir_3" "dir_1/${filename%.*}".*
done
- Dateien in Schleife einfügen
dir_2
(verwenden,*.txt
um nur diese Dateien in einer Schleife zu schleifen) ${f##*/}
gibt Ihnen den Dateinamen ohne Pfad.${filename%.*}
gibt Ihnen den Dateinamen ohne Erweiterung.mv -t "dir_3" "dir_1/${filename%.*}".*
verschiebt alle Dateien mit der angegebenen Erweiterungfilename
(ohne Erweiterung) nachdir_3
. Sie können bei Bedarf.mp4
anstelle von angeben..*