我基本上想要为锁定目录中的所有文件添加一个字符串。我无法将文件名传递给mv
命令:
find . -flags uchg -exec chflags nouchg "{}" | mv "{}" "{}"_LOCK \;
上面的代码显然不起作用,但我认为它解释了我正在尝试做的事情。
我面临两个问题:
001_LOCK.jpg
)之前。find
命令的输出传递两次。我需要这样做,因为它不会让我在锁定时更改文件的名称。所以我需要解锁文件然后重命名。有没有人有任何想法?
答案 0 :(得分:1)
这应该是一个好的开始。
我假设您没有将chflags传递给mv,这没有意义,但只是在chflags失败时重命名该文件。处理扩展更加棘手,但肯定是可行的。
find . -flags uchg -exec sh -c "chflags nouchg \$0 || mv \$0 \$0_LOCK" {} \;
编辑:如果chflags 成功重命名:
find . -flags uchg -exec sh -c "chflags nouchg \$0 && mv \$0 \$0_LOCK" {} \;