如何重命名难以输入的目录?

如何重命名难以输入的目录?

如何在不输入全名的情况下重命名奇怪的目录?

我有 8 个文件夹,文件夹名很长,并且我只在这个路径 /home/user/Downloads/ 中找到了这些文件夹 - 是否有任何命令可以从所有文件夹中获取每个 {*.txt} 文件并将它们移动到另一个目录?

答案1

如果我根据你的评论正确地重写了你的问题,那么

find /home/user/Downloads -type f -name \*.txt -print0 | \
  xargs -0  -I '{}' mv '{}' nice-directory

将可靠地执行您的要求。

答案2

你可以:

mv firstCoupleLetters[tab] newDir[enter] 

并依靠自动完成来填写原始目录名称,将其重命名为更短/更有用的名称。

答案3

要重命名目录horrible *[name]* with$weird <characters> \\in it,例如 ,可以使用通配符。例如,如果您只有一个目录weird名称中包含 :

mv "*weird*" a-regular-named-directory

其中"很重要。如果失败,您可以使用

ls --hide-control-chars

这将为您提供一个用 替换的奇数字符的列表?,然后您将得到一个可以在其上使用的 shell 模式mv

答案4

msw 的回答使用xargs就可以了。

然而,我会

  1. find -exec而不是xargs
  2. 使用mv -t target sources...形式而不是mv source target,这样您不需要mv为每个文件调用。
find ~/Downloads -type f -name "*.txt" -exec mv -t "/path/to/other_directory" {} +

或者,你可以使用globstar

shopt -s globstar
mv ~/Downloads/**/*.txt "/path/to/other_directory"

# Unset globstar again if you don't need it anymore:
shopt -u globstar

相关内容