Предположим, у меня есть папка, содержащая некоторые файлы и несколько папок (файлы могут быть любого типа). И я хочу переместить / скопировать некоторые из этих файлов и папок с помощью команды mv
/ cp
. Есть ли способ, чтобы я мог выбрать некоторые из них случайным образом, так же, как мы делаем выбор с помощью клавиши Ctrl и делаем перемещение / копирование с помощью терминала? Я не могу использовать ни подстановочные знаки, ни регулярные выражения, так как хочу выбирать файлы разных типов, и их имена имеют небольшое количество сходств.
command-line
bash
cp
mv
MikhilMC
источник
источник
cp -t /dest/ file{1,2,3}
или для диапазоновcp -t /dest/ file{1..3}
. Это работает и для нечисловых аргументов и комбинаций, например,cp -t /dest/ f{ile,ly}.{csv,txt}
выполняетсяcp -t /dest/ file.txt file.csv fly.txt fly.csv
. Будьте осторожны с перезаписью вещей, если позиция важна, но я считаю их полезными.Ответы:
Если вы хотите переместить или скопировать все файлы в один и тот же каталог, вы можете использовать
-t
опциюcp
илиmv
, но это будет означать, что вы должны ввести / указать каждое имя файла в качестве аргумента. Он работает следующим образом, используя столько файлов, сколько вам нужно аргументов:или
Это довольно трудоемко, но ввод имени файла может быть упрощен с помощью завершения вкладки Bash .
В качестве альтернативы следующий скрипт bash найдет все файлы в каталоге, заданном в качестве первого аргумента, и скопирует выбранные файлы в каталог назначения, заданный в качестве второго аргумента.
Он проверяет каждый файл и спрашивает, хотите ли вы скопировать этот файл. В конце выбора файла он показывает список выбранных файлов и спрашивает, хотите ли вы скопировать их в каталог назначения:
Имейте в виду, что в этом скрипте нет проверки ошибок на предмет того, существует ли каталог назначения или что вы ввели правильные аргументы.
источник
Вот скрипт, который выбирает случайный набор файлов / каталогов для копирования. Он может иметь дело с произвольными именами файлов, даже теми, которые содержат символы новой строки и пробелы. Сохраните сценарий как
~/bin/randomCopy.sh
, сделайте его исполняемым (chmod a+x ~/bin/randomCopy.sh
) и затем запустите его, указав исходный каталог в качестве первого аргумента, целевой каталог в качестве второго и число файлов / каталогов (сценарий не различает файлы и каталоги, как вы просили) для копирования. Например, чтобы скопировать 5 случайных файлов или каталогов из/foo
в/bar
:Сценарий:
Обратите внимание, что это перезапишет существующие файлы, если в целевом каталоге есть файлы с таким же именем.
источник
Может быть, попробовать использовать что-то вроде Midnight Commander ? Это консольное приложение, которое предоставляет функции, аналогичные графическому диспетчеру файлов Nautilus.
источник
Недавно я нашел эффективное решение этой проблемы с помощью xargs.
Затем введите
Ctrl + C
. Это будет работать наверняка. Я проверял это. С помощью этого метода мы можем выбрать файлы так же, как с помощьюCtrl
кнопки в графическом режиме, и сделать копирование / перемещение / удаление.источник