Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 以递增的数字重命名文件夹中的所有文件_Linux_Bash_Shell_Terminal - Fatal编程技术网

Linux 以递增的数字重命名文件夹中的所有文件

Linux 以递增的数字重命名文件夹中的所有文件,linux,bash,shell,terminal,Linux,Bash,Shell,Terminal,我有一个文件夹,文件夹里有10-15个任意名称的文件。 文件名中可能包含空格。例如:wWw.page.com(576)\u 002。 在终端中,当我按w然后按tab时,文件名如下所示:wWw.page.com\\\\\\\\\\\(576\)\u 0.txt 我想要一些脚本,可以重命名我所有的文件,比如0.txt,1.txt,2.txt等等 我的问题是:wWw.page.com(576)\u 002.txt文件找不到 index=0; for i in $(ls *.txt) do cp

我有一个文件夹,文件夹里有10-15个任意名称的文件。 文件名中可能包含空格。例如:
wWw.page.com(576)\u 002
。 在终端中,当我按
w
然后按
tab
时,文件名如下所示:
wWw.page.com\\\\\\\\\\\(576\)\u 0.txt

我想要一些脚本,可以重命名我所有的文件,比如
0.txt
1.txt
2.txt
等等

我的问题是:
wWw.page.com(576)\u 002.txt文件找不到

index=0;
for i in $(ls *.txt)
do
    cp "${i}"  $index".txt" 
done

不要使用
ls
尝试
glob

index=0;
for name in *.txt
do
    cp "${name}" "${index}.txt"
    index=$((index+1))
done

您不需要内部的
$
索引=$((索引+1))
)@MichaelCrein黑客谢谢!:-)是的,为什么这样做:在命令替换上,bash将根据
IFS
——而不是glob来破坏命令输出。@MichaelKrelin hacker我很少写脚本。有更好的方法增加索引吗?@cnicutar,首先,就像我在括号里说的。或者,您可以只执行
(++index))
perl-e'rename$\uu,$i++.q(.txt)while()'