Bash通配符使用

use*_*565 5 bash

我试图删除目录中的文件使用rm和不删除脚本中的目录本身.我看到的示例只在目录本身中执行此操作,而我想在不导航的情况下执行此操作.

我试过了

rm "$(dirname $1)/filetokeep/*"
Run Code Online (Sandbox Code Playgroud)

但它不起作用.有帮助吗?

Ign*_*ams 6

引用通配符会抑制扩展.

rm -- "$(dirname -- "$1")/filetokeep"/*
Run Code Online (Sandbox Code Playgroud)

使用--确保值不能被解释为可选参数而不是位置参数(如果名为的目录以$1a开头,那么事情仍然有效-).

  • @CharlesDuffy:更好的是,`rm - "$(dirname - "$ 1")/ filetokeep"/*`,以防'$ 1`用连字符开头. (2认同)