小编use*_*627的帖子

在 Bash 中,给定一系列文件 File.Number.{1..100}.txt,我如何判断给定目录中不存在哪些文件

我有一系列文件,如下所示:

File.Number.{1..10}.txt
Run Code Online (Sandbox Code Playgroud)

我想获取其中存在哪些文件的数组或序列。一种乏味的方法是遍历所有这些并附加到一个数组。我想知道是否有一个单行可以告诉我这些文件中哪些不存在或拉出文件的编号。

bash shell-script

5
推荐指数
2
解决办法
1027
查看次数

如何修改 find 函数循环来处理反斜杠和空格?

目前,我正在尝试解析目录中的所有文件。我有一个 find 函数,但它似乎无法将带有空格的文件目录解析为循环。这"$DIR"是我希望搜索的目录。有没有人知道如何修改它以使其工作?谢谢。

for file in $(find "$DIR" -type f)
do
   echo "$file"
done
Run Code Online (Sandbox Code Playgroud)

bash

2
推荐指数
2
解决办法
193
查看次数

为什么使用双括号“[[”检查通配符匹配的文件是否存在会失败,而使用单括号“[”可以?

假设我生成了两个目录,每个目录中都有文本文件,如下所示

mkdir "Directory1"
mkdir "Directory2"
touch "Directory1/fileclass1_"{1..5}".txt"
touch "Directory1/fileclass2_"{1..5}".txt"
touch "Directory2/fileclass1_"{1..5}".txt"
touch "Directory2/fileclass2_"{1..5}".txt"
Run Code Online (Sandbox Code Playgroud)

假设我通过执行以下操作来验证所有文件都在里面

A=( "Directory1" "Directory2" )
B=( "fileclass1" "fileclass2" )
for a in "${A[@]}"; do
    for b in "${B[@]}"; do
        for i in {1..5}; do
            name="${a}/${b}*${i}.txt"
            [[ ! -e $name ]] && echo "$name Does Not Exist"
        done
    done
done
Run Code Online (Sandbox Code Playgroud)

这返回

Directory1/fileclass1*1.txt Does Not Exist
Directory1/fileclass1*2.txt Does Not Exist
...
Run Code Online (Sandbox Code Playgroud)

但是,如果我用单括号替换双括号,我得到

A=( "Directory1" "Directory2" )
B=( "fileclass1" "fileclass2" )
for a in "${A[@]}"; do
    for b in "${B[@]}"; …
Run Code Online (Sandbox Code Playgroud)

shell bash wildcards test pattern-matching

2
推荐指数
1
解决办法
2015
查看次数

如何创建一个主 bash 脚本,允许用户输入他们想要运行的两个函数中的哪一个?

我目前有两个 bash 函数,一个用于上传,另一个用于下载文件。我想创建一个 bash 脚本,允许用户指定他们想要做的两个中的哪一个。

我遇到的问题是上传和下载功能无论如何都会运行。例如:

function upload() {
    var=$1
    #something goes here for upload
}

function download() {
    var=$1
    #something here for download
}

main() {
        case "$1" in
            -d) download "$2";;
            -u) upload "$2";;
            *) "Either -d or -x needs to be selected"
        esac
}
Run Code Online (Sandbox Code Playgroud)

我不能得到的main()只和抑制运行downloadupload备用。

bash function

-1
推荐指数
1
解决办法
140
查看次数