0

到目前为止,我有一个循环打印 find 命令的所有路径:

#!/bin/bash

while read -r line ; do
    echo "Processing... $line"
done < <(find /home/$USER -type d \( -name ".*" \) -prune -o -type f -size +10M -user $USER -writable -printf '%s %p\0'  |
        sort -z -n -k1 |
        awk -v RS="\0" '
        {
            file = $0; gsub(/^[^ ]* /, "", file)
            print file
        }')

我需要找到一种方法,该脚本向用户显示这些文件并让他选择和取消选择它们,并在完成选择后将这些路径返回给脚本,该脚本将删除这些文件或打包它们。

4

1 回答 1

0

使用fzf 工具。它接受标准输入并向用户显示行列表并让他们选择他们想要的内容。当用户提交时,fzf 将使用 stdout 打印选择。例子:

selection=$(ls | fzf)
echo "user selected: $selection"

用于fzf -m让用户选择多行。

或者,使用vipe 工具

于 2021-03-14T11:08:06.163 回答