p1mrx:
ls已经增加到58个选项,但仍然不能显示以\ 0结尾的文件名,这很奇怪。
作为练习,尝试按大小或日期对目录进行排序,然后将结果传输到xargs,同时支持所有有效的文件名。最后,我只是放弃了脚本,并忽略了名称中带有\ n的任何文件。
whelming_wave:
, (whitespace-in-filenames-safe). printf (od -> sed)
, , , , , , . , sort --zero-terminated
— GNU , macOS, , .
printf '%b' $(
find . -maxdepth 1 -exec sh -c '
printf '\''%s %s\0'\'' "$(stat -f '\''%m'\'' "$1")" "$1"
' sh {} \; | \
sort --zero-terminated | \
od -v -b | \
sed 's/^[^ ]*//
s/ *$//
s/ */ \\/g
s/\\000/\\012/g')
zsh, , 'command', printf, zsh, escape- . , .
POSIX, , sort.