Standard Actions
- MOVE
- COPY (i.e. copy-on-write clone if possible, or copy if necessary)
- SYMLINK (i.e. create relative symlink)
- HARDLINK (i.e. create another hardlink)
- KEEPLINK (i.e. move file and create a relative symlink to the new path in its place)
- DUPLICATE (i.e. hardlink if possible, or copy-on-write clone if possible, or copy if necessary)
- CLONE (i.e. copy-on-write clone aka reflink)
- TEST (i.e. do nothing)
e.g. process files with --action test to do a dry run:
Shell: Select all
--action TEST
Shell Actions
The --action parameter accepts custom executables as parameter value. The source path and the target path are passed as first and second argument respectively.e.g. use a custom shell script to perform arbitrary operations:
Shell: Select all
--action /usr/local/bin/echo-arguments
Shell: Select all
#!/bin/sh -xu
echo "SOURCE=$1"
echo "TARGET=$2"
e.g. use a custom PowerShell script to perform arbitrary operations:
Shell: Select all
--action "C:/bin/echo-arguments.ps1"
powershell: Select all
param($SOURCE, $TARGET)
Write-Output "SOURCE=$SOURCE"
Write-Output "TARGET=$TARGET"
e.g. use scp to copy files to a remote server:
Shell: Select all
--action /usr/local/bin/scp-to-server
Shell: Select all
#!/bin/sh -xu
scp -v "$1" "user@host:/volume1/files/$2"
e.g. use ln -s to create absolute symlinks:
Shell: Select all
--action /usr/local/bin/create-absolute-symlink
Shell: Select all
#!/bin/sh -xu
mkdir -p "$(dirname "$2")"
ln -sv "$1" "$2"
Groovy Actions
The --action parameter accepts custom Groovy code as parameter value. The code is expected to define a Function(File, File) that returns either null or a File object that represents the final target path.e.g. just print the source and target file path:
Shell: Select all
--action '{ from, to -> println "$from => $to" }'