如何复制 Linux 中多个文件的开头?

How do I copy the beginning of multiple files in Linux?

我想将一堆文件 (*.txt) 从一个目录复制到 Ubuntu 中的另一个目录。我想缩小它们的大小,所以我使用 head 来获取每行的前 100 行。

我希望新文件保留其原始名称但位于子目录 small/ 中。 我试过:

head -n 100 *.txt > small/*.txt

但这会创建一个名为 *.txt 的文件。 我也试过:

head -n 100 *.txt > small/

但这会产生 Is a directory 错误。

这一定很简单吧,但我在 Linux 方面很糟糕。 非常感谢任何帮助。

您必须创建一个循环:

for file in *.txt; do
    head -n 100 "$file" > small/"$file"
done

这遍历所有 .txt 文件,在所有文件中执行 head -n 100 并输出到 small/ 目录中的新文件。

尝试

for f in *.txt; do
  head -n 100 $f > small/$f
done