Não há nada errado em executar vim
com sudo
. Essa é a maneira correta de criar um arquivo em um diretório que precisa de acesso root. Quanto ao resto dos arquivos que existem links, novamente, não é um problema. Se isso faz você se sentir melhor, você pode criar o script em /usr/bin
, mas não há absolutamente nada de errado em ter um arquivo regular em /usr/local/bin
. De fato, de acordo com o Padrão de hierarquia do sistema de arquivos :
The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated. It may be used for programs and data that are shareable amongst a group of hosts, but not found in /usr.
Locally installed software must be placed within /usr/local rather than /usr unless it is being installed to replace or upgrade software in /usr. [28]
Então, se você quer seguir o FSH, você deve colocar qualquer coisa que você instalar manualmente em /usr/local
, então você fez a coisa certa.
Agora, se você não quiser a extensão .sh
, basta removê-la. Não funciona em sistemas * nix:
sudo mv /usr/local/bin/pdf2eps.sh /usr/local/bin/pdf2eps
Seu script agora estará em $PATH
as pdf2eps
.
O que você deve fazer, no entanto, é corrigir alguns problemas com o seu script que o façam falhar se for executado em um nome de arquivo com espaços ou outros caracteres estranhos. Modifique-o da seguinte forma:
#!/bin/sh
# http://tex.stackexchange.com/a/20886/13173
# $Id: pdf2eps,v 0.01 2005/10/28 00:55:46 Herbert Voss Exp $
# Convert PDF to encapsulated PostScript.
# usage:
# pdf2eps <page number> <pdf file without ext>
if [ $# -ne 2 ]; then
echo "Exactly 2 filenames are needed"
exit 1
fi
pdfcrop "$2.pdf"
pdftops -f "$1" -l "$1" -eps "$2-crop.pdf"
rm "$2-crop.pdf"
mv "$2-crop.eps" "$2.eps"