在linux上使用find来找文件的时候,加上 -ls 参数。中文显示就是乱码了。
类似这样。
/tmp/2022-06-15/test/ find ✔
.
./中文文件
/tmp/2022-06-15/test/ find -ls ✔
166682 0 drwxr-xr-x 2 pengpengxp pengpengxp 60 6月 15 15:27 .
166694 0 -rw-r--r-- 1 pengpengxp pengpengxp 0 6月 15 15:27 ./\344\270\255\346\226\207\346\226\207\344\273\266
/tmp/2022-06-15/test/ echo $LANG ✔
zh_CN.UTF-8
/tmp/2022-06-15/test/
查了find的文档,看起来find的-ls相当于 ls -dils
-ls True; list current file in ls -dils format on standard output.
The block counts are of 1 KB blocks, unless the environment
variable POSIXLY_CORRECT is set, in which case 512-byte blocks
are used. See the UNUSUAL FILENAMES section for information
about how unusual characters in filenames are handled.
用-exec来执行又是正确的:
/tmp/2022-06-15/test/ find -exec ls -dils {} \; ✔
166682 0 drwxr-xr-x 2 pengpengxp pengpengxp 60 6月15日 15:27 .
166694 0 -rw-r--r-- 1 pengpengxp pengpengxp 0 6月15日 15:27 ./中文文件
没有方向了。请助一下。