Скопируйте файлы, которые заканчиваются числом из каталога

Как я могу скопировать все обычные файлы (не каталоги или любой другой тип) из ~/foo, который заканчивается цифрой больше или равной 3 на ~/bar? Я пытался с помощью команд find и cp, но я не мог заставить его работать: find ~/foo -type f -regex '.*[!012]' -exec cp ~/bar.

Примеры:

some.file12 не будет скопирован, потому что его последняя цифра равна 2, а 2 & lt; 3. somefile603 будет скопирован. 3 = 3. foo3405 будет скопирован. 4> 3. file02.txt не будет скопирован. Он не заканчивается цифрой.
2
задан 20 June 2017 в 21:49

4 ответа

Он будет работать (включает также каталоги):

cp ./*[3-9] /path/to/dst

с поиском (только файлы):

find ./src -iname "*[3-9]" -type f -exec cp {} path/to/dst/ \;

с использованием regex (только файлы):

find ./src -regex "^.*[3-9]$" -exec cp {} path/to/dst/ \;
1
ответ дан 18 July 2018 в 11:20
[F1]
1
ответ дан 18 July 2018 в 11:20

Он будет работать (включает также каталоги):

cp ./*[3-9] /path/to/dst

с поиском (только файлы):

find ./src -iname "*[3-9]" -type f -exec cp {} path/to/dst/ \;

с использованием regex (только файлы):

find ./src -regex "^.*[3-9]$" -exec cp {} path/to/dst/ \;
1
ответ дан 24 July 2018 в 19:46
[F1]
1
ответ дан 24 July 2018 в 19:46
  • 1
    Вы можете использовать [3-9] вместо [3456789]. – Ravexina 20 June 2017 в 19:55
  • 2
    Конечно @Ravexina. Я понял сразу после публикации. – Pawel Debski 20 June 2017 в 19:57

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

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