Что относительно чего-то вроде этого?
#!/bin/bash
DUPE_SEARCH_DIR=somedir/
PREFERRED_DIRS=("somedir/subdir1" "somedir/subdir2")
DUPE_FILE=/tmp/`basename $0`_found-duplicates
delete_dupes() {
while read line ; do
if [ -n "$line" ] ; then
matched=false
for pdir in "${PREFERRED_DIRS[@]}" ; do
if [[ $line == $pdir/* ]] ; then
matched=true
break
fi
done
if ! $matched ; then
rm -v "$line"
fi
fi
done < "$DUPE_FILE"
}
cleanup() {
rm -f $DUPE_FILE
}
trap cleanup EXIT
# get rid of normal dupes, preserve first & preserve preferred
fdupes -rf "$DUPE_SEARCH_DIR" > $DUPE_FILE
delete_dupes
# get rid of preserve dupes, preserve preferred
fdupes -r "$DUPE_SEARCH_DIR" > "$DUPE_FILE"
delete_dupes
Статья Кросс-компилятора о Википедии довольно хороша. Обычно кросс-компилятор является компилятором, производящим код для другого вида системы, чем Ваш. Обычно это означает другую целевую аппаратную архитектуру, но это может также означать другую целевую операционную систему (или оба).
Теоретически Вы могли объединить их и использовать кросс-компилятор на архитектуре A1 и операционная система S1 для создания кросс-компилятора, который будет работать на архитектуре A2 под операционной системой S2 и производить код для операционной системы S3 на архитектуре A3.
Как Ulrich упоминает в своем комментарии, Linux, GCC должен быть Вашим "собственным" компилятором (т.е. для той же цели).