Переместить случайный файл с помощью команды mv

Простой и короткий вопрос; mv

я знаю, что mv может перемещать все файлы с определенным расширением, используя mv *.extension, но я довольно новичок в Ubuntu / Linux в целом. Я не уверен, может ли mv сделать это или нет.

2
задан 1 April 2016 в 01:21

2 ответа

Смотрите на страницы справочника для shuf и xargs команды, это могло бы быть тем, что Вы ищете:

shuf -n [Number of files to move] -e [PATH to the files to be moved] | xargs -i mv {} [PATH to the dest]
7
ответ дан 1 April 2016 в 11:21
  • 1
    Хорошо, если SSH работает, необходимо включить передачу X11 в MobaXTerm. Как только Вы находитесь в попытке сделать $DISPLAY эха или запустить xclock – MDP89 9 August 2017 в 20:24

Вот подход только для оболочки:

## Save all files in the array $files
files=(*)
## Get a random number between 0 (arrays start counting at 0) and the 
## the number of files -1 (the last file in the array)
rand=-1
until (( $rand < ${#files[@]} && $rand >= 0 )); do rand=$RANDOM; done
## Move the file, renaming as necessary
mv "${files[$rand]}" newfilename

Вы можете скопировать/вставить вышеупомянутое непосредственно в Ваш терминал.

<час>

, С другой стороны, в Perl:

perl -le 'rename $ARGV[int(rand($#ARGV))],newfilename' *

Эти rename функция просто переименовывает свой первый аргумент как ее секунду: rename orifinal_file new_file. rand функция печатает случайное дробное число между 0 и данный аргумент. $#ARGV количество аргументов, данных сценарию, здесь, все файлы (и подкаталоги) в текущем каталоге. С тех пор rand возвраты дробные числа, мы передаем его до int() для получения целого числа. Так, int(rand($#ARGV)) выборы один из индексов в массиве @ARGS случайным образом и поэтому $ARGV[int(rand($#ARGV))] является одним из файлов.

1
ответ дан 1 April 2016 в 11:21
  • 1
    Проверьте BIOS. Возможно, устройство отключено там. – Pilot6 11 August 2017 в 01:35

Другие вопросы по тегам:

Похожие вопросы: