Deutsch
Germany.ruФорумы → Архив Досок→ Linux & Co

Показать только скрытые файлы

445  
  AntonGL постоялец31.10.09 16:23
31.10.09 16:23 
Добрый день.
Кто мне напомнит как с мне помощью комманд "ls -la" и "grep" выдать список скрытых файлов. То есть мне нужны только те файлы, которые начинаются с "."
Есть ли альтернативы, если да, какие? Спасибо!
#1 
katran76 коренной житель31.10.09 16:46
NEW 31.10.09 16:46 
в ответ AntonGL 31.10.09 16:23
ls -ld .* (но покажет так же и директории)
find /my/directory/ -type f -name ".*" -maxdepth 1
#2 
  AntonGL постоялец31.10.09 17:16
NEW 31.10.09 17:16 
в ответ katran76 31.10.09 16:46
В ответ на:
ls -ld .* (но покажет так же и директории)

Можно ли со 100 % уверенностью сказать, что ls -ld .* | grep '^-' выдаст мне только спрятанные файлы?
#3 
katran76 коренной житель31.10.09 19:15
NEW 31.10.09 19:15 
в ответ AntonGL 31.10.09 17:16
В ответ на:
... 100 % ... ?

нет конечно.
#4 
  AntonGL постоялец01.11.09 03:31
NEW 01.11.09 03:31 
в ответ katran76 31.10.09 19:15
В ответ на:
нет конечно.

тогда как?
#5 
  anatoli888 старожил01.11.09 07:56
NEW 01.11.09 07:56 
в ответ AntonGL 01.11.09 03:31, Последний раз изменено 01.11.09 08:08 (anatoli888)
он имеет ввиду что 100% гарантии тебе никто не даст, но положиться на то что это будет работать можно.
пс: на счет работать: поиск по - не покажет тебе сокеты на пример.
la -ld .* | grep -v "^d"
#6 
  AntonGL постоялец01.11.09 15:59
NEW 01.11.09 15:59 
в ответ anatoli888 01.11.09 07:56
Огромное спасибо всем!
#7 
Russman коренной житель02.11.09 09:13
Russman
NEW 02.11.09 09:13 
в ответ AntonGL 31.10.09 16:23
ls -a | grep -P "^\." | grep -vP "\/$"
#8 
  AntonGL постоялец02.11.09 10:19
NEW 02.11.09 10:19 
в ответ Russman 02.11.09 09:13
В ответ на:
ls -a | grep -P "^\." | grep -vP "\/$"

Выдает "illegal variable name"
#9 
Russman коренной житель02.11.09 12:00
Russman
NEW 02.11.09 12:00 
в ответ AntonGL 02.11.09 10:19
csh ?
В баше работает
#10 
  AntonGL постоялец02.11.09 14:20
NEW 02.11.09 14:20 
в ответ Russman 02.11.09 12:00
В ответ на:
В баше работает

у меня не работает, выдает:
В ответ на:

bash-3.2$ ls -a | grep -P "^\." | grep -vP "\/$"
grep: Not a recognized flag: P
Usage: grep [-r] [-R] [-H] [-L] [-E|-F] [-c|-l|-q] [-insvxbhwy] [-p[parasep]] -e pattern_list...
[-f pattern_file...] [file...]
Usage: grep [-r] [-R] [-H] [-L] [-E|-F] [-c|-l|-q] [-insvxbhwy] [-p[parasep]] [-e pattern_list...]
-f pattern_file... [file...]
Usage: grep [-r] [-R] [-H] [-L] [-E|-F] [-c|-l|-q] [-insvxbhwy] [-p[parasep]] pattern_list [file...]
grep: Not a recognized flag: P
Usage: grep [-r] [-R] [-H] [-L] [-E|-F] [-c|-l|-q] [-insvxbhwy] [-p[parasep]] -e pattern_list...
[-f pattern_file...] [file...]
Usage: grep [-r] [-R] [-H] [-L] [-E|-F] [-c|-l|-q] [-insvxbhwy] [-p[parasep]] [-e pattern_list...]
-f pattern_file... [file...]
Usage: grep [-r] [-R] [-H] [-L] [-E|-F] [-c|-l|-q] [-insvxbhwy] [-p[parasep]] pattern_list [file...]

Ось AIX 5.1
Accept what you can`t alter, rebel against the rest.
#11 
Russman коренной житель02.11.09 15:25
Russman
NEW 02.11.09 15:25 
в ответ AntonGL 02.11.09 14:20, Последний раз изменено 02.11.09 15:31 (Russman)
grep не той системы :ь)
ls -a | grep "^\." | grep -v "\/$"
тоже должен работать. Основано на том, что у меня(!!!!) в баше (в tcsh ne rabotaet!) директории выдаются с "/" на конце и их легко ислючить из списка.
ЗЫ: делай ls -p . Тогда у дерикторий будет / на конце. Окончательный вариант:
ls -ap | grep '^\.' | grep -v '\/$'
должен работать и в tcsh
#12 
  AntonGL постоялец02.11.09 18:25
NEW 02.11.09 18:25 
в ответ Russman 02.11.09 15:25
предлагает заменить ls -ap | grep '^\.' | grep -v '\/$' на ls -ap | grep '^\.' | grep -v './$'
оба варианта работают прекрасно и в tcsh, и в bash
Спасибо за помощь!
#13 
katran76 коренной житель02.11.09 19:32
NEW 02.11.09 19:32 
в ответ AntonGL 02.11.09 18:25
месьё знает толк в извращениях
возьми find и не морочь голову:
find /my/directory/ -type f -name ".*" -maxdepth 1 -exec ls -l {} \;


#14 
  AntonGL постоялец02.11.09 19:39
NEW 02.11.09 19:39 
в ответ katran76 02.11.09 19:32, Последний раз изменено 02.11.09 19:40 (AntonGL)
В ответ на:
месьё знает толк в извращениях

главное, что работает
В ответ на:

возьми find и не морочь голову:
find /my/directory/ -type f -name ".*" -maxdepth 1 -exec ls -l {} \;

find: 0652-017 -maxdepth is not a valid option.
#15 
Russman коренной житель03.11.09 00:16
Russman
NEW 03.11.09 00:16 
в ответ AntonGL 02.11.09 18:25
./ не нужен абсолютно
если / ескейпить не надо то тогда '/$'
ну и слегка подсократить
ls -apd .* | grep -v '/$'
:-)
#16