スペースを含むファイル名を「zip」として渡すにはどうすればよいですか?

スペースを含むファイル名を「zip」として渡すにはどうすればよいですか?

이것은 매우 간단한 작업처럼 느껴지지만 제대로 작동할 수는 없습니다. 디렉토리의 처음 13개 파일을 아카이브에 넣고 싶습니다 .zip. 이를 수행하는 확실한 방법은

    zip first13.zip $(ls | head -n 13)

ただし、一部のファイル名(愚かな制度的な理由で変更できない)にスペースがあるため、失敗します。次lsへの変更は役に立ちません。 (とにかくリテラル文字で始まり終わるファイルが見つかりますが、それでも空白を解析するため、ls --quoting-style=shell-always状況は悪化します...)どちらも役に立ちません。zip'

    ls | head -n 13 | xargs zip first13.zip

今回もzip空白が解析されます。

奇妙なことに、うまく機能し、zip all.zip ./*明確すぎる一部zsh一種のエスケープが可能ですが、ワイルドカードの項目をコピーする方法がわかりません。

複数のバージョンがある場合、zip私のバージョンは公式のArch Linuxパッケージのバージョンであり、zipシェルCopyright (c) 1990-2008 Info-ZIPバージョンzshは5.8です。

ベストアンサー1

を使用しているので、利用可能でなければzshなりません。グローバル予選[m,n]一致範囲を選択する形式 -headパイプ(および暗黙のスペース分割)を完全に防止します。

zip first13.zip ./*([1,13])

man zshexpn詳細については、次を参照してください。

おすすめ記事