在linux中循环浏览文件夹?

在linux中循环浏览文件夹?,linux,Linux,我想将文件从一个目录移动到另一个目录 find /data/1990 -name "*.dat" -exec mv {} /data1/1990/ \; 那很容易。 现在我有/data/many years 199019911992199319941995 如何循环这些年?您可以这样做: for i in `ls /data/`; do echo "element=$i"; #put your code for each element done 通过更改当前的工作目录,我可以

我想将文件从一个目录移动到另一个目录

find /data/1990 -name "*.dat" -exec mv {} /data1/1990/ \;
那很容易。 现在我有/data/many years 199019911992199319941995


如何循环这些年?

您可以这样做:

for i in `ls /data/`; 
do 
    echo "element=$i";  #put your code for each element
done

通过更改当前的工作目录,我可以使我的生活更轻松:

cd /data
find 199[012345] -name "*.dat" -exec echo mv {} /data1/{} \;

您没有告诉我们您使用的是什么shell(它们与编程语言不同)。但在bash或zsh中,为了提供年份范围,可以使用花括号,即:

for year in {1990..1995}; do
    find /data/$year -name "*.dat" -exec mv {} /data1/$year \;
done
还可以使用算术求值和更现代的(?)块语法:

for ((year=1990; year<1995; year++)) {
    find /data/$year -name "*.dat" -exec mv {} /data1/$year \;
}

for((year=1990;year)您的year下有子文件夹吗?如果没有,那么
find
就太过分了。您可以使用
mv
。谢谢,循环怎么样