如何在Linux中复制多个文件的开头?
我想在Ubuntu中将一堆文件(*.txt)从一个目录复制到另一个目录。我想缩小它们的尺寸,所以我用head来获得每一行的前100行 我希望新文件保留其原始名称,但位于子目录如何在Linux中复制多个文件的开头?,linux,file,ubuntu,unix-head,Linux,File,Ubuntu,Unix Head,我想在Ubuntu中将一堆文件(*.txt)从一个目录复制到另一个目录。我想缩小它们的尺寸,所以我用head来获得每一行的前100行 我希望新文件保留其原始名称,但位于子目录small/中。 我试过: head -n 100 *.txt > small/*.txt 但这会创建一个名为*.txt的文件。 我也尝试过: head -n 100 *.txt > small/ 但是这给了一个目录错误 这一定很容易,对吧,但我在Linux方面相当差。 非常感谢您的帮助。您必须创建一个循环:
small/
中。
我试过:
head -n 100 *.txt > small/*.txt
但这会创建一个名为*.txt
的文件。
我也尝试过:
head -n 100 *.txt > small/
但是这给了一个目录
错误
这一定很容易,对吧,但我在Linux方面相当差。
非常感谢您的帮助。您必须创建一个循环:
for file in *.txt; do
head -n 100 "$file" > small/"$file"
done
这将遍历所有
.txt
文件,在所有文件中执行head-n 100
,并输出到small/
目录中的新文件中。您必须创建一个循环:
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
试一试
最好使用quote
$f
,以防止文件名包含空格。请参阅我的答案。最好引用$f
,以防止文件名包含空格。看看我的答案。