Я пытаюсь переместить все мои видеофайлы, которые находятся в каталоге моих картинок, в мой каталог фильмов. Кстати, это на Mac.Передача аргументов в командной строке Unix при использовании | symble
Я думал, что я мог бы просто Recurse все мои изображения каталогов с «LS -R»
Тогда я труба, что Grep -i «.avi» Это дает мне все файлы фильмов.
Теперь я передаю эти значения в «mv -n $ 1 ~/Movies», и я надеюсь, что они переместят файлы в папку «Фильмы».
У меня есть несколько проблем. 1. «ls -R» не указывает путь при перечислении файлов. Поэтому я думаю, что не могу переместить файл. 2. Кажется, я не могу присвоить имя файла $ 1 в команде mv.
Все вместе моя команда выглядит следующим образом: Обратите внимание, я бегу это от ~/Pictures
ls -R | grep -i ".avi" | mv -n $1 ~/Movies
Так прямо сейчас я не уверен, какая часть не удается, но я получаю эту ошибку:
usage: mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory
Если я удаляю команду «mv», я получаю список файлов avi без пути. Пример ниже:
4883.AVI
4884.AVI
4885.AVI
4886.AVI
4887.AVI
...
Любой есть идеи о том, как я могу получить путь в «LS», или как передать значение в между «|» команды.
Спасибо.
Вы получаете эту ошибку, потому что здесь $ 1 имеет значение NULL, поэтому для команды' mv', как вы передали только одно значение. Таким образом, его высказывание должно передать источник и назначение обоих. –