Chinaunix

标题: 想写个跟chmod -R一样的命令,但是有问题啊,求教 [打印本页]

作者: ccv709598965    时间: 2015-12-29 11:12
标题: 想写个跟chmod -R一样的命令,但是有问题啊,求教
ls -l |awk '{print $9}' > xxx.txt
我的想法是将目录的名称放入到xxx.txt文本里,然后将文本里面的结果输入到chmod 755 命令里面,但是这一步不会呀。我是这样想的行不行还不知道

作者: yjh777    时间: 2015-12-29 11:54
ls -l |awk '{print $9}' | xargs  chmod 755
作者: yjh777    时间: 2015-12-29 11:56
提醒: 这种方法对文件名带有空格或其他特殊字符的情况 不能正确处理...
作者: o枫叶o飘零    时间: 2015-12-29 11:58
用find


find filepath |xargs -i chmod 755 {} ;

作者: yjh777    时间: 2015-12-29 11:59
可以用下面方法:
while read file; do
    chmod 755 "$file"
done <xxx.txt


或者类似:
         find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
作者: ccv709598965    时间: 2015-12-29 12:04
好的谢谢。我等下试试回复 5# yjh777


   
作者: ccv709598965    时间: 2015-12-29 12:05
谢谢 等下试试回复 4# o枫叶o飘零


   
作者: ccv709598965    时间: 2015-12-29 14:05
find XXX |xargs chmod 777这样写跟加-I的区别在哪里呢 回复 4# o枫叶o飘零


   
作者: jcdiy0601    时间: 2015-12-30 09:34
xargs是最简便的方法,但是我看楼主的意思假如是把这个路径下文件都改成755不如直接命令一条搞定,何必还用管道,除非你想对特定文件修改权限

chmod 755 -R /root/*

or

a=`ls -l|awk '{print $9}'`
for i in $a;do chmod 755 $i;done
作者: o枫叶o飘零    时间: 2015-12-30 10:00
回复 9# jcdiy0601

  
  chmod 755 *




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2