GNU/Linux >> Linux の 問題 >  >> Linux

シェル スクリプトを使用して HDFS にファイルが存在するかどうかを調べる

-test を試すことができます 同じことを達成するためのオプション。

hdfs dfs -test -[defszrw] HDFS_PATH
  • -d : パスがディレクトリの場合は、0 を返します。
  • -e : パスが存在する場合は、0 を返します。

2.7.0以降

  • -f : パスがファイルの場合は、0 を返します。
  • -s : パスが空でない場合は、0 を返します。
  • -r : パスが存在し、読み取り許可が付与されている場合は、0 を返します。

2.8.0以降

  • -w : パスが存在し、書き込み権限が付与されている場合は、0 を返します。
  • -z : ファイルの長さがゼロの場合は、0 を返します。

例:

if hdfs dfs -test -e $HDFS_PATH; then
    echo "[$HDFS_PATH] exists on HDFS"
    hdfs dfs -ls $HDFS_PATH
fi

参照:https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/FileSystemShell.html#test


Linux
  1. 最も古いファイルを移動するためのシェルスクリプト?

  2. ファイルを bash シェル スクリプトに含める方法

  3. 起動時にシェルスクリプトを実行する方法

  1. シェルスクリプトだけを使用してテキストファイルから特定の行を取得する

  2. ファイルがシェルスクリプトに存在する場合にのみ移動する

  3. .sh ファイルがマルウェアになる可能性はありますか?

  1. シェルスクリプトで一時ファイルを作成するにはどうすればよいですか?

  2. シェルスクリプト:「ファイルが使用されていない場合」の状態?

  3. Bash を使用してファイルを検索してコピーする