修改unix中已移动文件的权限

时间:2015-04-04 15:36:58

标签: unix find chmod

我正在将文件从我的服务器存储区域移动到NAS(网络附加存储)。 move命令在我的脚本中并且每天执行。如: -

find . \ -mtime +0 -exec mv {} target \ ;

根据我的知识,上面的命令应该在24小时和48小时之间移动最后修改的文件。默认情况下,移动的文件获得64的权限。现在我想将这些移动文件的权限更改为644。请注意,文件从服务器移动到NAS。我在脚本中添加了以下命令

find target \ -mtime 0 -exec chmod 644 {}  \ ;

注意上面的命令中的0而不是+0。但这似乎不起作用。是因为due -mtime +0表示最后一次修改b / w 24hr和48hr,并且当文件从服务器移动到NAS时保留。在这种情况下,我将提供适当的mtime值。我知道一个简单的方法可能是将其作为mtime -3赋予它,它将修改所有修改时间少于72小时的文件的权限。但我不希望这个命令在所有3天的移动文件上运行,而只是在通过我的命令移动的文件上运行 find . \ -mtime +0 -exec mv {} target \ ;

1 个答案:

答案 0 :(得分:1)

我不明白反斜杠 您的查找将所有文件复制到一个目标文件夹 当你对它好的时候,(并且在所有dirs中都有写权限)你可以做到

find . -mtime +0 -exec chmod 644 {} \; -exec mv {} target \;

您可以使用

更多地控制简单的目录/文件(没有空格/其他特殊字符)
find . -mtime +0 | while read file; do
   filename=${file##*}
   mv ${file} ${target}
   chmod 644 ${target}/${filename}
done