bash范围的长度[重复]


1

这个问题已经在这里有了答案:

我正在尝试使用一些命令删除目录中的某些文件。使用循环 for i in $(ls -tr $path); ... 我需要知道$(ls -tr $path) 如何在不使用一个循环的情况下获取目录$ path中文件数的长度 ?

真正的问题是删除文件夹中的文件。结果文件夹中最多只能包含10个最新文件。


2
目前尚不清楚您到底想做什么,以及“长度”是什么意思
janos

在目录中,我有14个文件。如何在不使用更多循环的情况下获得计数?
Vyacheslav

1
嗯, 不要这样做for i in $(ls ……) -为什么这么复杂?做吧for i in $path。文件名称中包含空格后,第一个变体就会中断。当然,除非你试图解决不同的问题,在这种情况下,如果你问这将是最好的是另外一个问题,而不是
slhck 2015年

我可以猜测,您正在尝试删除给定目录中的最新或最旧的n个文件,或者该问题的某些变体?:)
slhck 2015年

@slhck更新了帖子。您说得对)
Vyacheslav

Answers:


1

尝试这个:

ls -l $path | wc -l

ls -l将为您每个文件提供一行,而wc -l则计算行数。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.