bash - 如何检测我的文件是否在(子)文件夹中

时间:2015-02-02 09:50:09

标签: bash

我试图在bash中使用它们之后编写脚本来移动文件。 我正在使用"打开"我的脚本,所以$1是文件(完整路径)

#! /bin/bash

fullpath="$1"
rootpath="/home/guillaume/Videos"
foo=${fullpath#${rootpath}}
echo "$foo"

zenity --question --title="Déplacer le fichier ?" --text="Déplacer le fichier vers le dossier VU ?"
if [ $? = 0 ]
then
    if # foo don't have a folder
    then
       mv $rootpath"$foo" /home/guillaume/Videos/VU
    elif # foo contains a folder
       # command to copy the subdirectory
    fi
fi

foo的结果可能是:

/title_subdirectory/file with_spaces or_not.ext

/file with_spaces or_not.ext

如何检测文件是否在子目录中,然后移动所有子目录和文件?

1 个答案:

答案 0 :(得分:1)

我要检查文件名是否与basename(没有目录的名称)相同

if [ `basename "$foo"` = "$foo" ] ; then
  echo root directory
else
  echo subdirectory
fi

如果根目录中的文件具有前导/,那么您可能需要这样做以在比较之前删除前导/

if [ `basename "$foo"` = "${foo#/}" ] ; then
  echo root directory
else
  echo subdirectory
fi