通过在指定目录下文件回路[复制]

问题描述 投票:0回答:3

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

我通过在用户指定的目录中的所有文件试图循环。这里是我的代码:

clear
echo "enter the directory path: \n"
read directory
for file in $directory; do
    echo $file
done

我的输入,例如:/home/user/Downloads

输出我得到:/home/user/Downloads

如果我使用

clear
for file in *; do
    echo $file
done

它的工作原理,但它表明只有当前目录的内容

bash
3个回答
1
投票

如果你只是想在文件中的非递归地在当前目录下,结合你有什么:

read -p 'Enter the directory path: ' directory
for file in "$directory"/*; do
  echo "$file"
done

如果你想递归循环,你有bash的4,它不是要困难得多:

shopt -s globstar
for file in "$directory"/**/*; do …

但是,如果你只有bash的3,你会关闭使用find更好。

find "$directory"

0
投票

你可以写这个剧本

 #!/bin/bash

clear
echo "enter the directory path: \n"
read directory
for file in $directory/*; do
    echo $file
done

0
投票

尝试

dir="${GOL_HOME}/test_dir"
file="file_*.csv"
for file in `cd ${dir};ls -1 ${file}` ;do
   echo $file
done 
© www.soinside.com 2019 - 2024. All rights reserved.