Como mv e adotar permissões de diretório de destino

2

Como faço para mover um arquivo para que o arquivo adote as permissões do diretório de destino?
Certamente este é um cenário incrivelmente comum .... qualquer ajuda apreciada.

    
por GeoJim 21.12.2013 / 22:53

1 resposta

0

Algum tipo de wrapper lidaria com esse cenário incomum. O exemplo foi testado como funcionando, mas tem opções mínimas (nenhuma opção tradicional / bin / mv pode ser passada na linha de comando). Salve abaixo em um script e execute-o (com bash script ou chmod +x script e execute ./script ):

#!/bin/bash

helpusage() {
    echo "Usage: $0 targetdir files"
    exit
}

getperms() {
    /usr/bin/stat --printf="%a" "$1"
}
getowner() {
    /usr/bin/stat --printf="%U" "$1"
}
getgroup() {
    /usr/bin/stat --printf="%G" "$1"
}
if [[ $# -ge 2 ]]
then
    if [[ -d "$1" ]]
    then
        targetdir=$1
        shift
    else
        helpusage
    fi
else
    helpusage
fi

td_perms=$(getperms "$targetdir")
td_owner=$(getowner "$targetdir")
td_group=$(getgroup "$targetdir")

/bin/mv --target-directory="$targetdir" "$@" && \
for file in "$@"
do
    file="$targetdir/$file"
    /bin/chmod "$td_perms" "$file"
    /bin/chown "$td_owner":"$td_group" "$file"
done
    
por 22.12.2013 / 03:46