我的文件夹结构如下所示:
./build
./module/build
./source
我只想保留./build及其内容。
该命令find . \! -path ./build -delete
不会删除./build
,而是所有内容。
如何避免呢?
尝试:
find . \! \( -wholename "./build/*" -o -wholename ./build \) -delete
如果您运行:
rm -rf /tmp/tmp2
mkdir /tmp/tmp2
cd /tmp/tmp2
mkdir -p build module/build source
touch .hidden build/abc build/abc2 source/def module/build/ghi
find . \! \( -wholename "./build/*" -o -wholename ./build \) -delete
find .
您的输出将是:
./build
./build/abc
这比尝试解析的输出要安全得多ls
,在这种情况下,您必须注意带有空格的文件或目录名称,或者更糟糕的是嵌入了换行符,才能find
正确处理这些文件或目录。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句