В по необходимости, как я могу удалить файлы из каталога в моей рабочей области, где файлы не являются частью рабочей области?

В по необходимости, как я могу удалить файлы из каталога в моей рабочей области, где файлы я хочу удаленный, не часть рабочей области?

У меня есть каталог в моей файловой системе с файлами, от которых это добирается по необходимости, но после некоторых выполненных процессов, это создает некоторые новые файлы в тех каталогах.

Существует ли по необходимости команда для удаления этих сгенерированных файлов, которые не являются частью моей рабочей области?

5
задан Matt 9 July 2010 в 23:30
поделиться

4 ответа

Это моя быстрая реализация p4 nothave .

#!/bin/bash
#
# List files present, but not in perforce.

tmpd="$(mktemp -d /tmp/nothave.XXXXXXXX)"
trap "rm -rf $tmpd" EXIT HUP INT QUIT TERM

p4 have | awk -F' - ' '{print $2}' | sort >$tmpd/have.txt

root=$(p4 info | awk -F': ' '$1=="Client root"{print $2}')
find $root -type f | sort >$tmpd/find.txt

comm -13 $tmpd/have.txt $tmpd/find.txt

Будет создан список файлов, которые затем можно передать в xargs rm для удаления. Однако будьте осторожны, чтобы проверить список перед удалением. Вы можете найти там то, чего не ожидали.

3
ответ дан 13 December 2019 в 22:01
поделиться

Вы не можете изменять/удалять файлы, которые не являются частью вашего рабочего пространства, из perforce. Для этого вам придется писать внешние скрипты.

1
ответ дан 13 December 2019 в 22:01
поделиться

Это немного неудобно в PowerShell, потому что p4 отправляет сообщение «Невозможно найти файл» в поток ошибок, а не в стандартный поток вывода.

ps > $error.clear()
ps > dir | %{p4 fstat -T "haveRev" $_} 2>$null
ps > $error | %{$_.Exception.ToString().Split()[1]} | %{del $_}

Вторая строка должна выдавать такие ошибки, как «FILENAME.EXT - таких файлов нет». Это может быть немного нестабильно, если у вас есть что-то, кроме этих исключений в потоке ошибок, поэтому остерегаться.

1
ответ дан 13 December 2019 в 22:01
поделиться

Вы можете использовать p4 nothave, чтобы определить файлы, которые не управляются perforce. В зависимости от результатов p4 nothave вы можете сделать p4 nothave | xargs rm, но не забудьте проверить результат p4 nothave, прежде чем выполнять это (чтобы случайно не удалить что-то важное).

-4
ответ дан 13 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: