gpt4 book ai didi

bash - 在 bash 中针对黑名单移动文件时遇到问题

转载 作者:行者123 更新时间:2023-12-04 04:43:35 25 4
gpt4 key购买 nike

嘿伙计们,我正在尝试将所有文​​件从一个目录移动到另一个目录中未包含在黑名单中的文件,我收到错误 missing destination file after operand after $SVN还包括一些调试器信息,谢谢。

#!/bin/bash
clear; set -x

# here
ROOT=`pwd`

# dirs
SVN_FOLDER="${ROOT}/svn"
GIT_FOLDER="${ROOT}/git"

# blacklist
EXCLUDE=('.git' '.idea')
EXCLUDELIST=$(printf "|%s" "${EXCLUDE[@]}")
EXCLUDEDIR=`echo "${GIT_FOLDER}/!(${EXCLUDELIST:1})"`

shopt -s dotglob nullglob # see hidden

mv $EXCLUDEDIR $SVN_FOLDER

# + mv {dir}/svn <--- the excluded stuff is NOT in the MV cmd?
# mv: missing destination file operand after ‘{dir}/svn’

最佳答案

我会这样解决:

#!/bin/bash

SVN_FOLDER="${ROOT}/svn"
GIT_FOLDER="${ROOT}/git"

EXCLUDE=('.git' '.idea')
EXCLUDE_PATTERN=$(IFS='|'; echo "${EXCLUDE[*]}")
EXCLUDE_PATTERN=${EXCLUDE_PATTERN//./\\.}

find "$GIT_FOLDER" -mindepth 1 -maxdepth 1 -regextype posix-egrep -not -regex ".*/(${EXCLUDE_PATTERN})$" -exec mv -i -t "$SVN_FOLDER" '{}' '+'

如果该命令已经适用于您,您可以选择删除 -i来自 mv 的选项命令。

关于bash - 在 bash 中针对黑名单移动文件时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18540283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com