我有这个专门重命名文件的脚本。
#!/bin/bash
#sh j
echo "for rename press [y]"
echo "Or any key to continue"
find . -name "*string1*" -ok rename -v -- 's/(.*)\/(.*)string1(.*)/$1\/beginning_$2string3$3/' {} \;
echo "No more matches."
现在我只想重命名运行该脚本的用户拥有的文件。
答案1
要将命令范围缩小find
到仅由特定用户拥有的文件,可以使用开关-user
;要将其范围缩小到仅由运行脚本的用户拥有的文件(例如,如果您运行脚本,则sudo
仅使用 root 拥有的文件进行匹配),请将$USER
其作为参数传递给-user
开关:
find . -name "*string1*" -user "$USER" -ok rename -v -- 's/(.*)\/(.*)string1(.*)/$1\/beginning_$2string3$3/' {} \;
您可以替换{} \;
以{} +
获得更好的性能:
find . -name "*string1*" -user "$USER" -ok rename -v -- 's/(.*)\/(.*)string1(.*)/$1\/beginning_$2string3$3/' {} +