重命名运行脚本的用户拥有的文件

重命名运行脚本的用户拥有的文件

我有这个专门重命名文件的脚本。

#!/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命令看起来很熟悉......

要将命令范围缩小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/' {} +

相关内容