相关疑难解决方法(0)

管道 find -name 到 xargs 导致文件名没有传递给命令的空格

通常要删除文件名中带有空格的文件,您必须运行:

$ rm "file name"
Run Code Online (Sandbox Code Playgroud)

但如果我想删除多个文件,例如:

$ find . -name "*.txt" | xargs rm
Run Code Online (Sandbox Code Playgroud)

这不会删除其中包含空格的文件。

command-line rm find xargs

32
推荐指数
1
解决办法
4万
查看次数

如何让 shell 识别由 `ls -A` 命令返回的文件名,并且这些文件名包含空格?

这是我用来重命名由ls -A以下方法返回的文件的脚本的一部分:

for FILE in `ls -A`
do
        ext=${FILE##*.}
        NUM=$(($NUM+1))
        NEWFILE=`echo $2_$NUM.$ext | sed 's/ /_/g'`

        mv "$FILE" "$NEWFILE"
done
Run Code Online (Sandbox Code Playgroud)

但是找不到带空格的名字!$2 参数不能成为错误的原因,为什么我将一个没有空格的名称作为参数,这个脚本采用该名称并重命名文件夹中的所有文件,以便让它们编号并且不修改文件扩展名。不幸的是,它不会重命名名称中包含空格的文件。有人能帮我吗?

command-line bash scripts

3
推荐指数
2
解决办法
2822
查看次数

标签 统计

command-line ×2

bash ×1

find ×1

rm ×1

scripts ×1

xargs ×1