mv 在命令终端中交互

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

我需要在 Linux 终端中查找并移动文件,我已经成功地使用以下行完成了它

find . -name "*FILE*" -print0 | xargs -0 -I {} mv {} /FOLDER1/

但我需要的是在执行此操作之前询问您是否要移动文件,我使用 -i 标志尝试过,但它仅在要被覆盖时才有效。

linux command
1个回答
0
投票

要在移动文件之前要求确认,您可以创建一个简单的 shell 脚本来完成此操作:

脚本:

#!/bin/bash

# Check if the number of arguments is correct
if [ "$#" -ne 2 ]; then
    echo "Usage: $0 <file> <destination>"
    exit 1
fi

SEARCH_TERM="$1"
DEST_FOLDER="$2"

find . -name "*${SEARCH_TERM}*" -print0 | while IFS= read -r -d '' file; do
    echo "Move file: $file to $DEST_FOLDER? (y/n)"
    read -r response
    if [[ "$response" =~ ^[Yy]$ ]]; then
        mv "$file" "$DEST_FOLDER"
    fi
done

您也可以将其添加到路径中并使其成为命令。 将其保存在

/bin
中并使用
chmod +x
确保其具有可执行权限。

© www.soinside.com 2019 - 2024. All rights reserved.