【问题标题】:Moves "n" files, each to a specific folder with command line or bash in ubuntu在 ubuntu 中使用命令行或 bash 移动“n”个文件,每个文件到一个特定的文件夹
【发布时间】:2016-04-20 22:52:05
【问题描述】:

我在一个文件夹中有多个文件。每个文件都有不同的名称和不同的扩展名。我需要一种方法将每个文件移动到名为 Archive_1、Archive_2、Archive_n 等的文件夹中。 文件的顺序无关紧要,但我需要每个文件夹一个文件。

我正在寻找类似按名称对文件进行排序的方法,然后将第一个文件移至 Archive_1,然后将第二个文件移至 Archive_2,等等。找不到。

有什么帮助吗?

【问题讨论】:

  • 你能举例说明所需的输入和准确的输出吗?
  • 我有电影,比如说“为奴十二年.mkv”和“Akira.mp4”。它们都在同一个文件夹中。我想将“为奴十二年.mkv”移动到一个名为“Movie_1”的新文件夹,将“Akira.mp4”移动到一个名为“Movie_2”的新文件夹。我需要在 +100 个文件上执行此操作,因此手动执行它不是最佳选择。

标签: bash ubuntu command-line


【解决方案1】:

假设所有文件都在PWD中,可以执行:

i=0
for f in ./*; do
    new_dir=Movie_$((++i))
    mkdir -p "$new_dir"
    mv "$f" "$new_dir"
done

测试(我用上面的命令创建了一个名为 sof 的脚本):

$ touch a b c
$ ./sof
$ tree
.
├── Movie_1
│   └── a
├── Movie_2
│   └── b
└── Movie_3
    └── c

3 directories, 3 files

【讨论】:

    猜你喜欢
    • 2021-10-16
    • 1970-01-01
    • 2011-06-12
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 1970-01-01
    • 2016-12-30
    相关资源
    最近更新 更多