Допустим, у меня есть следующие файлы
/home/user/test1.java
/home/user/test2.java
/home/user/test3.java
/home/user/test1.java.orig
/home/user/test2.java.orig
/home/user/test3.java.orig
Я хочу, чтобы файлы без расширения .orig были записаны вместе с файлами, например /home/user/test1.java.orig -> /home/user/test1.java и т. д.
Есть ли какая-нибудь команда, такая как:
mv /home/user/*.orig /home/user/*
, где я могу использовать placeholder из источника в определении назначения и где я могу указать, что я хочу перезаписать?
for file in $(find /home/user/* -name "*.orig") ; do mv $file ${file//.orig/} ; done
Это приведет только к перемещению файлов с заданным расширением, а также будет выполняться рекурсивно через подкаталоги.
Если рекурсия должна быть отключена, on может добавить -maxdepth 1 в команду find. [ ! d1]