循环浏览linux中的文件夹?

时间:2017-03-16 17:20:43

标签: linux

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

find /data/1990 -name "*.dat" -exec mv {} /data1/1990/ \;

这很容易。 我有/数据/多年1990,1991,1992,1993,1994,1995

如何循环这些年?

3 个答案:

答案 0 :(得分:0)

你可以这样做:

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

答案 1 :(得分:0)

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

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
    cell.alpha = 0
    let book = books[indexPath.row]
    cell.textLabel?.text = book.bookTitle
    cell.detailTextLabel?.text = book.postURL
    let url = URL(string: book.postPicture)
    DispatchQueue.global().async {
        let data = try? Data(contentsOf: url!)
        DispatchQueue.main.async {
            cell.alpha = 0
            cell.backgroundView = UIImageView(image: UIImage(data: data!))
            UIView.animate(withDuration: 0.5, animations: {
                cell.alpha = 1
            })
        }
    }
    cell.contentView.backgroundColor = UIColor.clear
    cell.textLabel?.backgroundColor = cell.contentView.backgroundColor;
    cell.detailTextLabel?.backgroundColor = cell.contentView.backgroundColor;

    func prepareForReuse(){
        cell.alpha = 0
        cell.backgroundView = UIImageView(image: UIImage(named: "book.jpg"))
    }
    return cell


}

答案 2 :(得分:0)

你没告诉我们你使用的是什么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 \;
}