Яка різниця між 'ls' та 'ls -l', коли я не маю дозволу на виконання цього каталогу?


11

Я створив каталог, який називається, folderі забрав дозвіл на виконання.

$ mkdir folder
$ touch folder/innerFile
$ mkdir folder/innerFolder
$ chmod -x folder

Тепер, якщо я

$ ls folder

він видає список файлів, але коли я це роблю

$ ls -l folder

я отримав

ls: innerFile: Permission denied
ls: innerFolder: Permission denied

Чому так?


4
Перевірте цю відповідь. У ньому є відповіді на ваше запитання.
Рамеш

2
"Яка різниця між 'ls' і 'ls -l', коли я не маю дозволу на виконання цього каталогу?" В принципі, це те ж саме, різниця між «LS» і «Ls -l» , коли ви дійсно маєте дозволу на виконання каталогу.
G-Man каже: "Відновіть Моніку"

Відповіді:


18

ls -lу папці намагається вмістити statїї, тоді як lsне:

$ strace ls folder -l
...
lstat("folder/innerFolder", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
getxattr("folder/innerFolder", "system.posix_acl_access", 0x0, 0) = -1 ENODATA (No data available)
getxattr("folder/innerFolder", "system.posix_acl_default", 0x0, 0) = -1 ENODATA (No data available)
lstat("folder/innerFile", {st_mode=S_IFDIR|0755, st_size=40, ...}) = 0
getxattr("folder/innerFile", "system.posix_acl_access", 0x0, 0) = -1 ENODATA (No data available)
getxattr("folder/innerFile", "system.posix_acl_default", 0x0, 0) = -1 ENODATA (No data available)
...

Ось чому ви отримуєте "дозвіл відмовлено" з, ls -lа не з ls.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.