find: warning: Unix filenames usually don't contain slashes (though pathnames do).

Linuxコマンドfind

問題発生

 状態:-  閲覧数:819  投稿日:2017-01-30  更新日:2018-03-26

エラー表示


表示は警告だが、処理自体実行されなかった
find: warning: Unix filenames usually don't contain slashes (though pathnames do).  That means that '-iname `/home/★★/backup/db_all_backup-*.sql.gz'' will probably evaluate to false all the time on this system.  You might find the '-wholename' test more useful, or perhaps '-samefile'.  Alternatively, if you are using GNU grep, you could use 'find ... -print0 | grep -FzZ `/home/★★/backup/db_all_backup-*.sql.gz''.


エラー内容


find:警告:Unixのファイル名には通常、スラッシュは含まれていません(パス名ではありますが)。

エラー原因


find構文の理解不足
・スラッシュを含むパス名を使用する場合

ファイル名にパス名を含めるのでははなく、「検索開始ディレクトリ」として指定
・「検索を開始する起点のディレクトリ」を指定する

「find」コマンドの構文


「検索開始ディレクトリ」を省略した場合は、「currentディレクトリ」を検索
find 検索開始ディレクトリ 検索条件 コマンド


遭遇例

 閲覧数:169 投稿日:2017-01-30 更新日:2017-01-30 

修正前


▼old_delete2.sh
#バックアップ先
D_DIR="/home/★★/backup/"

#DB 名
DB_NAME="db_all_backup"

#削除対象の日付 3日前
RMDAY=2

DELDAY=`date --date ${RMDAY}' days ago' '+%Y%m%d'`

for LINE in `find -iname ${D_DIR}${DB_NAME}"-*.sql.gz"`
do
 FILEDATE=`echo "$LINE" | sed -e 's/[^0-9]//g'`
 if [ $DELDAY -gt $FILEDATE ] ; then
   echo "delete $LINE"
   rm -f $LINE
 fi
done



修正後


▼old_delete2.sh
#バックアップ先
D_DIR="/home/★★/backup/"

#DB 名
DB_NAME="db_all_backup"

#削除対象の日付 3日前
RMDAY=2

DELDAY=`date --date ${RMDAY}' days ago' '+%Y%m%d'`

for LINE in `find ${D_DIR} -iname ${DB_NAME}"-*.sql.gz"`
do
 FILEDATE=`echo "$LINE" | sed -e 's/[^0-9]//g'`
 if [ $DELDAY -gt $FILEDATE ] ; then
   echo "delete $LINE"
   rm -f $LINE
 fi
done



補足


ディレクトリ指定
・最後の/はあっても良い?

D_DIR="/home/★★/backup/"
・"/home/★★/backup"の方が良いと思われる
・他で使用してる箇所があるため、"/home/★★/backup/"のまま試したら正常動作したため、このまま使用することにする


指定ディレクトリ内の「特定拡張子のファイル」のみ削除 / find の -delete オプションを使用



週間人気ページランキング / 9-16 → 9-22
順位 ページタイトル抜粋 アクセス数
1 Nginx設定。エラーログレベル | Nginx(Webサーバ) 19
2 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 14
3 PHPのmb_send_mail関数でメール送信できない | メール処理システム 13
4 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 12
5 touch コマンド / viコマンド。新規ファイル作成時の違い | Linuxコマンド 8
6 ソースからビルドしたPython 2.7.3 アンインストール失敗 | Python(プログラミング言語) 7
6 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 7
6 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 7
6 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 7
6 manページ日本語表示 | CentOS 7 (CentOS) 7
6 PHPファイルでchmodエラー | PHP(プログラミング言語) 7
7 ABRT により 問題が検出されました | CentOS 7 (CentOS) 6
7 Python 3.6 インストール / make altinstall | Python(プログラミング言語) 6
7 さくらVPS0 6
8 Reached target Shutdown メッセージが表示されたあと、シャットダウンまたは再起動プロセスがハングアップする | CentOS 7 (CentOS) 5
9 PHP Version 7.1.2 php-mecabエクステンション対応 / PHP 7.0.14 からのアップグレード  | MeCab(形態素解析) 4
9 echo と cat の違い 4
9 phpMyAdmin 4.4.3(phpMyAdmin) カテゴリー 4
9 tar: これは tar アーカイブではないようです 4
9 MySQL 5.5 から 5.6 へのアップグレード | MySQL(データベース) 4
2021/9/23 1:01 更新