我试图在某个文件夹和所有子文件夹中查找所有文件和文件夹,并替换所有特殊字符。所有空格均应替换为点,而其他所有内容均应删除。我尝试了几种不同的方法,但是当我使用“ mv”时,它似乎并没有保留目录结构;当我将“ rename”与“ find”一起使用时,它不想递归进行。
我最近得到的是:
for f in **/; do mv "$f" `echo $f | tr " " . | tr -dc '[:alnum:].'`; done
但是我认为该循环在某处中断了,因为它将文件名加在一起并将结果放置在父目录中。
答案 0 :(得分:4)
您可以这样做:
$ python manage.py shell
>>> from django.conf import settings
>>> settings.MIDDLEWARE
...
这里有几点:
find . -depth -execdir rename 's/\s/./g; s/[^[:alnum:]./]//g' {} +
-深度优先遍历目录层次结构。这样可以确保在重命名文件夹之前,在 文件夹中重命名文件-depth
-在子目录中执行命令 --execdir
现在将是{}
,而不是./filename
./dir1/dir2/filename
,请检查您的手册页。