相关疑难解决方法(0)

“重命名”和“mv”有什么区别?

我并不完全清楚,但是mvand rename(from util-linux-ng 2.17.2as /usr/bin/rename)之间有什么区别?除了rename接受正则表达式之外,是否还有其他优势mv?我相信rename也可以一次处理多个文件重命名,mv而不会这样做。

我无法在他们的man页面中找到明确的指示,是什么让他们与众不同,或者通过我自己的一些调查。

rename mv

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

如何替换所有文件夹和文件名中的字符串

如何使用不同的字符串递归替换所有文件夹和文件名中的字符串?我正在运行 Red Hat 6,我可以通过以下方式找到它们:

find . -name \*string\*
Run Code Online (Sandbox Code Playgroud)

我已经设法为文件中的字符串做到了:

find . -type f -exec sed -i 's/string1/string2/g' {} +
Run Code Online (Sandbox Code Playgroud)

但是我怎么能以类似的方式替换所有文件名?

shell rename

8
推荐指数
2
解决办法
2万
查看次数

为什么 /usr/bin/rename.ul 有扩展名?

我rename.ul在我的 Ubuntu 机器上找到了一个命令。它来自util-linux包。

这对我来说很奇怪,因为我很少看到带有扩展名的可执行文件。此外,由于文件已编译,因此似乎没有必要。

是否有任何历史或技术原因?

我也很困惑,因为我找不到与此扩展名相关的文件格式。

executable filenames command

7
推荐指数
2
解决办法
2356
查看次数

如何从目录中的多个文件中删除前缀

我有大约 250 个文件名:

no_responseEvent_2002.02.07.03.15.56.970/       
no_responseEvent_2002.02.10.01.47.07.450/       
no_responseEvent_2002.02.13.14.18.46.00/
Run Code Online (Sandbox Code Playgroud)

我想从每个文件名中删除“no_response”。
我怎么做?
我知道 for 循环可以工作,但我对如何实现它感到困惑。

find

6
推荐指数
1
解决办法
2万
查看次数

根据模式批量重命名文件的命令

我在一个目录中有很多文件,命名如下 ID_OTHER_STUFF.txt 我想将它们全部重命名为 ID.txt。这不是重复的,因为我不知道如何指定这种模式。

bash rename

5
推荐指数
1
解决办法
2万
查看次数

从 TitleCase -> Title Case 批量重命名文件(空格分隔)

我有一个 38GB 的​​文件夹,里面有 800 个 MP4 视频。重新下载后,文件名没有空格,所有单词都连在一起,但还是TitleCase。

所以从TitleCase我需要Title Case。

批量重命名这些文件的最有效方法是什么?

我记得很久以前我的发行版中就包含了rename或autorename,但现在似乎没有了。

rename

5
推荐指数
2
解决办法
4011
查看次数

在unix中批量复制/移动文件?

有没有办法在unix中批量复制/移动文件?我认为这可能是一个选择,cp/mv但我找不到任何方法来做到这一点。

command-line cp rename

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

批量重命名文件

我有一个充满图像的目录:

DSCN4749.JPG
DSCN4750.JPG
DSCN4892.JPG
...
Run Code Online (Sandbox Code Playgroud)

我想要一个单线将它们重命名为(比如说)。

dscn4749.jpg
dscn4750.jpg
dscn4892.jpg
...
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

替代方案/扩展/警告

  • 我想递归
  • 该目录包含混合文件类型,我只想重命名 DSCN*.JPG 文件。
  • bash 解决方案
  • perl 解决方案
  • zsh解决方案
  • 我想要一个带有硬链接现有文件的新目录树。
  • 我想更改名称不仅仅是更改大小写,例如 dscn5555.JPG 到 05555.jpg

...

command-line shell rename

4
推荐指数
3
解决办法
2729
查看次数

管道文件名到 zmv

我发现在管道中使用 find 然后使用 grep -v 来过滤文件而不是开发复杂的正则表达式模式要容易得多。但是,当我像这样将某些东西通过管道传输到 zmv 时:

find | grep -v TFLM | zmv "(*)" "TFLM \$1"
Run Code Online (Sandbox Code Playgroud)

它只是忽略输入并继续将转换应用于所有文件。有没有办法告诉它使用管道输入?我想我可以移开过滤掉的文件,然后使用 zmv,但这并不是真正的解决方案。

grep zsh pipe files

4
推荐指数
2
解决办法
419
查看次数

如何修改这个`while read; mv printf` 代码仅重命名某些文件类型的文件?

有问题的代码:

ls | cat -n | while read n f; do mv "$f" `printf "video_%03d.mp4" $n`; done
Run Code Online (Sandbox Code Playgroud)

上面的代码将执行的目录中的所有文件/文件夹重命名为:

video_001.mp4
video_002.mp4
video_003.mp4
and so on... 
Run Code Online (Sandbox Code Playgroud)

但是,最好只针对特定类型的文件,例如只重命名.mp4文件,而不是重命名包括目录在内的所有内容。

ls bash shell-script rename printf

2
推荐指数
1
解决办法
389
查看次数

标签 统计

rename ×7

bash ×2

command-line ×2

shell ×2

command ×1

cp ×1

executable ×1

filenames ×1

files ×1

find ×1

grep ×1

ls ×1

mv ×1

pipe ×1

printf ×1

shell-script ×1

zsh ×1