Sas*_*cha 5 files directory rename
我想出了这个,但不幸的是它不会影响子文件夹中的任何文件/文件夹。
find . -exec rename "s/^\s+//" {} \;
Run Code Online (Sandbox Code Playgroud)
文件夹结构:
foo
|-- \ bar
`-- \ foo1
|-- \ bar1
`-- \ foo2
`-- \ bar2
Run Code Online (Sandbox Code Playgroud)
问题是您需要从下到上重命名目录。否则,该命令将尝试重命名已移动(重命名)文件夹内的文件和目录,因此无法再找到它们。
这是可以使用python
s 的地方os.walk()
,与topdown=False
在一个小脚本中:
#!/usr/bin/env python3
import os
import shutil
import sys
for root, dirs, files in os.walk(sys.argv[1], topdown=False):
for f in files:
if f.startswith(" "):
shutil.move(root+"/"+f, root+"/"+f.strip())
for dr in dirs:
if dr.startswith(" "):
shutil.move(root+"/"+dr, root+"/"+dr.strip())
Run Code Online (Sandbox Code Playgroud)
no_space.py
通过命令运行它:
python3 /path/to/no_space.py /path/to/directory/to/rename
Run Code Online (Sandbox Code Playgroud)