У меня есть 5 файлов с именем file1.txt, file2.txt ... file5.txt, и я хотел бы переместить их в соответствующий каталог dir1, dir2 ... dir5.Переместить несколько файлов в несколько из нескольких каталогов
Таким образом file1.txt перемещается в каталог dir1, файл2.txt перемещается в каталог dir2 и т. Д.
Есть ли способ сделать это в одной строке в командной строке, используя mv
и xargs
возможно?
Я предлагаю только xargs
, потому что мне очень нравится answer, предоставленный Robert Gamble, на вопрос, как копировать один файл в несколько каталогов.
echo dir1 dir2 dir3 | xargs -n 1 cp file1
Это работает, спасибо! Я не думал об использовании 'echo', чтобы увидеть, какие команды будут выполняться на самом деле до выполнения на самом деле - я буду помнить об этом. Есть ли способ использовать ваше решение для файлов name fileA, fileB и т. Д.? – dlynch
Просто сделайте 'для n в A B ...; do ... '. Кроме того, «эхо» должно было помочь мне отладить его. Я случайно оставил его там :-). Я рад, что это помогло. – redneb
Спасибо за добавление 'xargs'. Что касается вопроса fileA, fileB и т. Д. Я не вижу, как предоставить команду с двумя входами. Следующее 'для n в {A..E}; do echo mv - "file $ n.txt" "dir $ n"; done' будет mv fileA.txt в dirA и т. д., но если бы я хотел переместить fileA.txt в dir1 - это возможно или это совсем другой вопрос? – dlynch