2015-10-24 11 views
-2

Я создал очень простой скрипт (команда терминала), но по некоторым причинам файлы исчезли после mv. Все файлы с «mv: rename ........: Нет такого файла или каталога» исчезли ... но, с другой стороны, другие файлы были перемещены правильно (хотя между ходами нет различий). Что я сделал не так?Сценарий Mac с командой mv заставил некоторые файлы исчезнуть с машины

$ ls 2015-10-21_JUNK/*.JPG | awk -F"/" '{print $NF}' | awk -F"." '{print $1}' | awk '{print "mv 2015-10-21/"$1".NEF 2015-10-21_JUNK"}' | sh -x 

+ mv 2015-10-21/DSC_8297.NEF 2015-10-21_JUNK 
mv: rename 2015-10-21/DSC_8297.NEF to 2015-10-21_JUNK/DSC_8297.NEF: No such file or directory 
+ mv 2015-10-21/DSC_8298.NEF 2015-10-21_JUNK 
mv: rename 2015-10-21/DSC_8298.NEF to 2015-10-21_JUNK/DSC_8298.NEF: No such file or directory 
+ mv 2015-10-21/DSC_8302.NEF 2015-10-21_JUNK 
mv: rename 2015-10-21/DSC_8302.NEF to 2015-10-21_JUNK/DSC_8302.NEF: No such file or directory 
+ mv 2015-10-21/DSC_8305.NEF 2015-10-21_JUNK 
mv: rename 2015-10-21/DSC_8305.NEF to 2015-10-21_JUNK/DSC_8305.NEF: No such file or directory 
+ mv 2015-10-21/DSC_8307.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8316.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8317.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8322.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8323.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8325.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8330.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8336.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8337.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8338.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8339.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8341.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8343.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8346.NEF 2015-10-21_JUNK 
mv: rename 2015-10-21/DSC_8346.NEF to 2015-10-21_JUNK/DSC_8346.NEF: No such file or directory 
+ mv 2015-10-21/DSC_8347.NEF 2015-10-21_JUNK 
mv: rename 2015-10-21/DSC_8347.NEF to 2015-10-21_JUNK/DSC_8347.NEF: No such file or directory 
+ mv 2015-10-21/DSC_8353.NEF 2015-10-21_JUNK 
mv: rename 2015-10-21/DSC_8353.NEF to 2015-10-21_JUNK/DSC_8353.NEF: No such file or directory 
+ mv 2015-10-21/DSC_8355.NEF 2015-10-21_JUNK 
mv: rename 2015-10-21/DSC_8355.NEF to 2015-10-21_JUNK/DSC_8355.NEF: No such file or directory 
+ mv 2015-10-21/DSC_8358.NEF 2015-10-21_JUNK 
+ mv 2015-10-21/DSC_8361.NEF 2015-10-21_JUNK 
+0

Похоже на то, что вы перемещали (переименовывали) или удаляли целевой каталог. – tripleee

+0

Вы проанализировали вывод 'ls', который почти всегда представляет собой плохую идею - вам следует использовать вместо этого' find ... print0', чтобы вы могли размещать пробелы в именах файлов. –

+0

Пожалуйста [правильно отформатируйте свой код] (http://meta.stackexchange.com/a/22189/248777). – mklement0

ответ

0

Вот намного более чистый и эффективный способ выполнить вашу задачу.

for f in 2015-10-21_JUNK/*.JPG; do 
    f=${f##/}  # Strip the leading directory 
    f=${f%%.*JPG} # Strip everything after the first . 
    mv 2015-10-21/"$f".NEF 2015-10-21_JUNK 
done