У меня есть следующие файлы в каталоге:Как перемещать файлы на основе определенного диапазона длин символов?
f.txt
fi.txt
fil.txt
file.txt
filen.txt
filena.txt
filenam.txt
filename.txt
filenametoolong.txt
Я хочу, чтобы переместить все, кроме последнего. Это следующее регулярное выражение относится к моим потребностям:^{1,13} .txt
Однако, используя регулярное выражение с с "мв"
mv ^.{1,13}\.txt trashdir
Результаты в
mv: cannot stat `^.1.txt': No such file or directory
mv: cannot stat `^.24.txt': No such file or directory
у меня есть. проверили и дважды проверили синтаксис регулярного выражения, и он кажется действительным. Что мне не хватает?
Ну, это ... смешно. Во всяком случае, что такое «+» в конце? Кроме того, хорошо ли удалять префикс «/» перед «trashdir», поэтому он не будет пытаться выполнить root? – Lakitu
Да, вы можете использовать любой относительный путь вместо '/ trashdir' в качестве целевого каталога. '+' для прекращения вашей команды, которая приходит после '-exec' и считается более эффективной, чем использование' \; '. Проверьте 'man find' для получения более подробной информации. – anubhava
Я попробовал вашу команду, но получил 'find: missing argument to '-exec'' Я разделил команду find, чтобы просто найти. -regex '\ ./. \ {1,13 \}' ', и это выглядит пустым. – Lakitu