Assistência em como exibir arquivos somente de gravação para uma pasta especificada pelo usuário

2

Estou escrevendo um script que permite ao usuário entrar em uma pasta de sua escolha. Após a conclusão, o script pesquisará a partir da raiz da pasta e exibirá todos os arquivos contidos nela que só têm permissão de gravação para a categoria Outros. Aqui está o que eu tenho até agora, e eu sei que meu problema está dentro de uma pequena opção de busca, espero que alguém possa ajudar.

echo -e "Enter a Folder Name Below\n"
read foldername
answer=$(find -prm -o+w / -name $foldername 2>/dev/null)
if [ "$answer" = "" ]
then
    clear
    echo -e "\n\n That Was Bad Input" 
else
    clear
    ls -l $answer
fi
read pause
    
por Nathan Rampado 06.05.2015 / 22:17

2 respostas

0

Existem algumas melhorias necessárias para o seu script. É uma boa prática citar suas variáveis "$folder" , "$answer" . Você precisa usar -z e -n para testar strings nulas / não nulas em seu script. É melhor usar read -r especialmente ao ler entradas com barras. Você também precisa alterar a ordem dos argumentos em seu comando find. Dependendo do seu shell, talvez você queira usar wholename em vez de name . Aqui está uma versão funcional que você pode considerar.

#!/bin/bash
echo -e "Enter a Folder Name Below\n"
read -r foldername
answer=$(find / -type d -perm /o+w -wholename "$foldername" 2>/dev/null)
if [ -z "$answer" ]
then
    clear
    echo -e "\n\n That Was Bad Input" 
else
    clear
    ls -l "$answer"
fi
read pause
    
por 07.05.2015 / 14:53
-1

Você tem um erro de sintaxe nas opções find . É -perm , por exemplo:

$ find $foldername -type f -perm -o+w
    
por 07.05.2015 / 01:19

Tags