Removendo um arquivo com caracteres especiais através do terminal, que foi selecionado por outro comando

0

este é meu primeiro post, então vá gentilmente:)

Estou criando um AppleScript que executa comandos bash para selecionar e excluir o arquivo modificado mais recentemente em um grupo de pastas especificado. O nome do arquivo será diferente a cada vez.

Já vi como excluir um arquivo com caracteres especiais quando você sabe o nome real do arquivo, mas, no meu caso, o nome do arquivo é descoberto por ls. Infelizmente, quando eu tenho que deletar o arquivo usando rm, tudo fica bagunçado e não consigo identificar o arquivo devido a ter pontos de interrogação e espaços em seu nome. Existe uma maneira de adicionar citações ao lado de fora de uma variável, para que ela possa ser endereçada corretamente? Ou há uma maneira melhor. Eu não posso nem descobrir como renomear o arquivo. Além disso, eu só quero alterar / excluir esse arquivo, não posso renomear todos os arquivos na pasta.

Aqui está um exemplo de um dos nomes dos arquivos. ? +61 434 570 460? em 2016-12-22 em 15.01.27.ichat

E aqui está o código que estou tentando trabalhar; rm -fr $ (ls -t | head -n1)

Obrigado pelo seu pessoal de entrada:)

    
por Gethen Sullivan 31.12.2016 / 15:18

1 resposta

0

Eu trabalhei para fora, eventualmente, eu tive que colocar aspas entre aspas, ou seja, adicionar aspas ao comando.

Este é o comando de trabalho para excluir o arquivo mais recente, independentemente de quaisquer caracteres especiais ou espaços no nome.

rm -f "" "$ (ls -t | tail -1)" ""

Felicidades.

    
por 02.01.2017 / 10:50